@pipe0/base 1.0.24 โ 1.0.26
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.
- package/CHANGELOG.md +16 -0
- package/dist/index.d.mts +285 -88
- package/dist/index.mjs +4 -4
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{extendZodWithOpenApi as e}from"@asteasolutions/zod-to-openapi";import*as t from"zod";import{ZodError as n,z as r}from"zod";import i from"xxhash-wasm";import{addYears as a,differenceInCalendarDays as o,format as s,parse as c,parseISO as l}from"date-fns";import{Drop as u,Liquid as d,TokenKind as f}from"liquidjs";import{Ajv as p}from"ajv";import m from"json-schema-traverse";import{getDomain as ee}from"tldts";e(r);const te={companydb:`https://api.crustdata.com/screener/companydb/autocomplete`,persondb:`https://api.crustdata.com/screener/persondb/autocomplete`};function ne(e,t){return async(n,r,i)=>{let a=await fetch(te[e],{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Token ${i.apiKey}`},body:JSON.stringify({field:t,query:n,limit:r})});if(!a.ok)throw Error(`Crustdata ${e} autocomplete failed`);return(await a.json()).suggestions.map(e=>({value:e,label:e}))}}const re={companydb:`https://api.crustdata.com/company/search/autocomplete`,persondb:`https://api.crustdata.com/person/search/autocomplete`,jobdb:`https://api.crustdata.com/job/search/autocomplete`};function ie({db:e,field:t}){return async(n=``,r,i)=>{let a=await fetch(re[e],{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${i.apiKey}`,"x-api-version":`2025-11-01`},body:JSON.stringify({field:t,query:n,limit:r})});if(!a.ok)throw Error(`Crustdata ${e} autocomplete failed`);let o=await a.json(),s=new Set,c=[];for(let{value:e}of o.suggestions)!e||s.has(e)||(s.add(e),c.push({value:e,label:e}));return c}}const ae=e=>e.map(e=>({value:e,label:e})),oe=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),se=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),ce=oe([[`Public Company`,`๐`],[`Educational`,`๐`],[`Self Employed`,`๐ค`],[`Government Agency`,`๐๏ธ`],[`Non Profit`,`๐`],[`Self Owned`,`๐ชช`],[`Privately Held`,`๐`],[`Partnership`,`๐ค`]]),le=ae([`1-10 employees`,`11-50 employees`,`51-200 employees`,`201-500 employees`,`501-1000 employees`,`1001-5000 employees`,`5001-10000 employees`,`10001+ employees`]),ue=oe([[`Owner`,`๐`],[`Founder`,`๐`],[`C-Suite`,`๐ผ`],[`Partner`,`๐ค`],[`VP`,`๐๏ธ`],[`Head`,`๐ฏ`],[`Director`,`๐ฌ`],[`Manager`,`๐`],[`Senior`,`โญ`],[`Entry`,`๐ฑ`],[`Intern`,`๐`],[`Other`,`โ`],[`Non-Manager`,`๐ฅ`],[`Founder / Owner`,`๐`]]),de=oe([[`Senior Leadership`,`๐`],[`Consulting`,`๐ผ`],[`Design`,`๐จ`],[`Education`,`๐`],[`Engineering & Technical`,`๐ ๏ธ`],[`Finance`,`๐ฐ`],[`Human Resources`,`๐ฅ`],[`Information Technology`,`๐ป`],[`Legal`,`โ๏ธ`],[`Marketing`,`๐ฃ`],[`Medical & Health`,`๐ฅ`],[`Operations`,`โ๏ธ`],[`Product`,`๐ฆ`],[`Revenue`,`๐ธ`]]),fe=oe([[`$0-$1M`,`๐ช`],[`$1M-$10M`,`๐ต`],[`$10M-$100M`,`๐ฐ`],[`$100M-$1B`,`๐ฆ`],[`$1B+`,`๐`]]),pe=se([[`b2b`,`B2B`,`๐ข`],[`b2c`,`B2C`,`๐๏ธ`]]),me=se([[`influencer`,`Influencer (10,000+ followers)`,`๐ `],[`micro_influencer`,`Micro influencer (5,000-9,999 followers)`,`๐ซ`],[`large`,`Large (500-4,999 followers)`,`๐`],[`moderate`,`Moderate (100-499 followers)`,`โญ`],[`limited`,`Limited (1-99 followers)`,`โจ`],[`none`,`None (0 followers)`,`โช`]]),he=se([[`massive`,`Massive (100,000+ followers)`,`๐`],[`large`,`Large (10,000-99,999 followers)`,`๐`],[`moderate`,`Moderate (1,000-9,999 followers)`,`โญ`],[`limited`,`Limited (1-999 followers)`,`โจ`],[`none`,`None (0 followers)`,`โช`]]),ge=se([[`pre_seed`,`Pre Seed`,`๐ฑ`],[`seed`,`Seed`,`๐ฟ`],[`angel`,`Angel`,`๐`],[`venture_round_unknown_series`,`Venture Round (Unknown Series)`,`โ`],[`series_a`,`Series A`,`1๏ธโฃ`],[`series_b`,`Series B`,`2๏ธโฃ`],[`series_c`,`Series C`,`3๏ธโฃ`],[`series_d`,`Series D`,`4๏ธโฃ`],[`series_e`,`Series E`,`5๏ธโฃ`],[`series_f`,`Series F`,`6๏ธโฃ`],[`series_g`,`Series G`,`7๏ธโฃ`],[`series_h`,`Series H`,`8๏ธโฃ`],[`series_i`,`Series I`,`9๏ธโฃ`],[`series_j`,`Series J`,`๐`],[`debt`,`Debt`,`๐ณ`],[`equity_crowdfunding`,`Equity Crowdfunding`,`๐`],[`convertible_note`,`Convertible Note`,`๐`],[`ico`,`ICO`,`๐ช`],[`private_equity`,`Private Equity`,`๐ผ`],[`other`,`Other`,`๐งฉ`]]),_e=oe([[`Account Management`,`๐ค`],[`Accounting`,`๐`],[`Acquisitions`,`๐`],[`Advertising`,`๐บ`],[`Anesthesiology`,`๐`],[`Application Development`,`๐ฑ`],[`Artificial Intelligence / Machine Learning`,`๐ค`],[`Bioengineering & Biometrics`,`๐งฌ`],[`Brand Management`,`๐ท๏ธ`],[`Business Development`,`๐`],[`Business Intelligence`,`๐ง `],[`Business Service Management / ITSM`,`๐ ๏ธ`],[`Call Center`,`๐`],[`Channel Sales`,`๐ก`],[`Chemical Engineering`,`โ๏ธ`],[`Chiropractics`,`๐ฆด`],[`Clinical Systems`,`๐ฅ`],[`Cloud / Mobility`,`โ๏ธ`],[`Collaboration & Web App`,`๐`],[`Compensation & Benefits`,`๐ต`],[`Compliance`,`โ
`],[`Construction`,`๐๏ธ`],[`Consultant`,`๐ผ`],[`Content Marketing`,`โ๏ธ`],[`Contracts`,`๐`],[`Corporate Secretary`,`๐`],[`Corporate Strategy`,`๐ฏ`],[`Culture, Diversity & Inclusion`,`๐`],[`Customer Experience`,`๐`],[`Customer Marketing`,`๐ข`],[`Customer Retention & Development`,`๐`],[`Customer Service / Support`,`๐ง`],[`Customer Success`,`๐`],[`Data Center`,`๐๏ธ`],[`Data Science`,`๐`],[`Data Warehouse`,`๐ฌ`],[`Database Administration`,`๐๏ธ`],[`Demand Generation`,`๐งฒ`],[`Dentistry`,`๐ฆท`],[`Dermatology`,`๐งด`],[`DevOps`,`โ๏ธ`],[`Digital Marketing`,`๐ป`],[`Digital Transformation`,`๐`],[`Doctors / Physicians`,`๐จโโ๏ธ`],[`eCommerce Development`,`๐`],[`eCommerce Marketing`,`๐๏ธ`],[`eDiscovery`,`๐`],[`Emerging Technology / Innovation`,`๐ก`],[`Employee & Labor Relations`,`๐ค`],[`Engineering & Technical`,`๐ ๏ธ`],[`Enterprise Architecture`,`๐๏ธ`],[`Enterprise Resource Planning`,`๐`],[`Epidemiology`,`๐ฆ `],[`Ethics`,`โ๏ธ`],[`Event Marketing`,`๐`],[`Executive`,`๐ผ`],[`Facilities Management`,`๐ข`],[`Field / Outside Sales`,`๐`],[`Field Marketing`,`๐ณ`],[`Finance`,`๐ฐ`],[`Finance Executive`,`๐ผ`],[`Financial Planning & Analysis`,`๐`],[`Financial Reporting`,`๐`],[`Financial Risk`,`โ ๏ธ`],[`Financial Strategy`,`๐ฏ`],[`Financial Systems`,`๐ฆ`],[`First Responder`,`๐จ`],[`Founder`,`๐`],[`Governance`,`๐๏ธ`],[`Governmental Affairs & Regulatory Law`,`๐`],[`Graphic / Visual / Brand Design`,`๐จ`],[`Growth`,`๐`],[`Health & Safety`,`๐ฆบ`],[`Help Desk / Desktop Services`,`๐ฅ๏ธ`],[`HR / Financial / ERP Systems`,`๐งพ`],[`HR Business Partner`,`๐ค`],[`Human Resource Information System`,`๐พ`],[`Human Resources`,`๐ฅ`],[`Human Resources Executive`,`๐ผ`],[`Industrial Engineering`,`๐ญ`],[`Infectious Disease`,`๐ฆ `],[`Information Security`,`๐`],[`Information Technology`,`๐ป`],[`Information Technology Executive`,`๐ผ`],[`Infrastructure`,`๐๏ธ`],[`Inside Sales`,`๐`],[`Intellectual Property & Patent`,`๐ก`],[`Internal Audit & Control`,`๐`],[`Investor Relations`,`๐ฐ`],[`IT Asset Management`,`๐ฆ`],[`IT Audit / IT Compliance`,`๐`],[`IT Operations`,`โ๏ธ`],[`IT Procurement`,`๐`],[`IT Strategy`,`๐ฏ`],[`IT Training`,`๐`],[`Labor & Employment`,`๐ท`],[`Lawyer / Attorney`,`โ๏ธ`],[`Lead Generation`,`๐ฏ`],[`Learning & Development`,`๐`],[`Leasing`,`๐`],[`Legal`,`โ๏ธ`],[`Legal Counsel`,`โ๏ธ`],[`Legal Executive`,`๐ผ`],[`Legal Operations`,`๐`],[`Litigation`,`๐๏ธ`],[`Logistics`,`๐`],[`Marketing`,`๐ฃ`],[`Marketing Analytics / Insights`,`๐`],[`Marketing Communications`,`๐ฐ`],[`Marketing Executive`,`๐ผ`],[`Marketing Operations`,`โ๏ธ`],[`Mechanic`,`๐ง`],[`Medical & Health Executive`,`๐ฅ`],[`Medical Administration`,`๐`],[`Medical Education & Training`,`๐`],[`Medical Research`,`๐งช`],[`Medicine`,`๐`],[`Mergers & Acquisitions`,`๐ค`],[`Mobile Development`,`๐ฑ`],[`Networking`,`๐`],[`Neurology`,`๐ง `],[`Nursing`,`๐ฉบ`],[`Nutrition & Dietetics`,`๐ฅ`],[`Obstetrics / Gynecology`,`๐คฐ`],[`Office Operations`,`๐ข`],[`Oncology`,`๐๏ธ`],[`Operations`,`โ๏ธ`],[`Operations Executive`,`๐ผ`],[`Ophthalmology`,`๐๏ธ`],[`Optometry`,`๐`],[`Organizational Development`,`๐`],[`Orthopedics`,`๐ฆด`],[`Partnerships`,`๐ค`],[`Pathology`,`๐ฌ`],[`Pediatrics`,`๐ถ`],[`People Operations`,`๐ฅ`],[`Pharmacy`,`๐`],[`Physical Security`,`๐ก๏ธ`],[`Physical Therapy`,`๐คธ`],[`Principal`,`๐ซ`],[`Privacy`,`๐`],[`Product Development`,`๐ง`],[`Product Management`,`๐ฆ`],[`Product Marketing`,`๐ฆ`],[`Product or UI/UX Design`,`๐จ`],[`Professor`,`๐จโ๐ซ`],[`Project & Program Management`,`๐
`],[`Project Development`,`๐ ๏ธ`],[`Project Management`,`๐`],[`Psychiatry`,`๐ง `],[`Psychology`,`๐ง `],[`Public Health`,`๐ฅ`],[`Public Relations`,`๐ฐ`],[`Quality Assurance`,`โ
`],[`Quality Management`,`โ
`],[`Radiology`,`๐ท`],[`Real Estate`,`๐ `],[`Real Estate Finance`,`๐๏ธ`],[`Recruiting & Talent Acquisition`,`๐ฏ`],[`Research & Development`,`๐ฌ`],[`Retail / Store Systems`,`๐๏ธ`],[`Revenue Operations`,`๐ธ`],[`Safety`,`๐ฆบ`],[`Sales`,`๐ธ`],[`Sales Enablement`,`๐ฏ`],[`Sales Engineering`,`๐ ๏ธ`],[`Sales Executive`,`๐ผ`],[`Sales Operations`,`โ๏ธ`],[`Sales Training`,`๐`],[`Scrum Master / Agile Coach`,`๐`],[`Search Engine Optimization / Pay Per Click`,`๐`],[`Servers`,`๐ฅ๏ธ`],[`Shared Services`,`๐`],[`Social Media Marketing`,`๐ฑ`],[`Social Work`,`๐ซ`],[`Software Development`,`๐ป`],[`Sourcing / Procurement`,`๐`],[`Storage & Disaster Recovery`,`๐พ`],[`Store Operations`,`๐ช`],[`Strategic Communications`,`๐ฃ`],[`Superintendent`,`๐ท`],[`Supply Chain`,`๐`],[`Support / Technical Services`,`๐ง`],[`Talent Management`,`๐`],[`Tax`,`๐ต`],[`Teacher`,`๐จโ๐ซ`],[`Technical Marketing`,`๐ ๏ธ`],[`Technician`,`๐ง`],[`Technology Operations`,`โ๏ธ`],[`Telecommunications`,`๐ก`],[`Test / Quality Assurance`,`โ
`],[`Treasury`,`๐ฐ`],[`UI / UX`,`๐จ`],[`Virtualization`,`๐ป`],[`Web Development`,`๐`],[`Workforce Management`,`๐ฅ`]]),ve=oe([[`Abrasives and Nonmetallic Minerals Manufacturing`,`๐ชจ`],[`Accessible Architecture and Design`,`โฟ`],[`Accessible Hardware Manufacturing`,`โฟ`],[`Accommodation and Food Services`,`๐จ`],[`Accounting`,`๐`],[`Administration of Justice`,`โ๏ธ`],[`Administrative and Support Services`,`๐`],[`Advertising Services`,`๐บ`],[`Agricultural Chemical Manufacturing`,`๐งช`],[`Agriculture, Construction, Mining Machinery Manufacturing`,`๐`],[`Air, Water, and Waste Program Management`,`โป๏ธ`],[`Airlines and Aviation`,`โ๏ธ`],[`Alternative Dispute Resolution`,`๐ค`],[`Alternative Fuel Vehicle Manufacturing`,`๐`],[`Alternative Medicine`,`๐ฟ`],[`Ambulance Services`,`๐`],[`Amusement Parks and Arcades`,`๐ข`],[`Animal Feed Manufacturing`,`๐พ`],[`Animation and Post-production`,`๐ฌ`],[`Apparel Manufacturing`,`๐`],[`Appliances, Electrical, and Electronics Manufacturing`,`๐`],[`Architectural and Structural Metal Manufacturing`,`๐๏ธ`],[`Architecture and Planning`,`๐`],[`Armed Forces`,`๐ช`],[`Artificial Rubber and Synthetic Fiber Manufacturing`,`๐งต`],[`Artists and Writers`,`๐จ`],[`Audio and Video Equipment Manufacturing`,`๐๏ธ`],[`Automation Machinery Manufacturing`,`๐ค`],[`Aviation and Aerospace Component Manufacturing`,`๐ฉ๏ธ`],[`Baked Goods Manufacturing`,`๐ฅ`],[`Banking`,`๐ฆ`],[`Bars, Taverns, and Nightclubs`,`๐ป`],[`Bed-and-Breakfasts, Hostels, Homestays`,`๐๏ธ`],[`Beverage Manufacturing`,`๐ฅค`],[`Biomass Electric Power Generation`,`๐ฑ`],[`Biotechnology Research`,`๐งฌ`],[`Blockchain Services`,`โ๏ธ`],[`Blogs`,`๐`],[`Boilers, Tanks, and Shipping Container Manufacturing`,`๐ฆ`],[`Book Publishing`,`๐`],[`Book and Periodical Publishing`,`๐`],[`Breweries`,`๐บ`],[`Broadcast Media Production and Distribution`,`๐ก`],[`Building Construction`,`๐๏ธ`],[`Building Equipment Contractors`,`๐ง`],[`Building Finishing Contractors`,`๐ช`],[`Building Structure and Exterior Contractors`,`๐งฑ`],[`Business Consulting and Services`,`๐ผ`],[`Business Content`,`๐ฐ`],[`Business Intelligence Platforms`,`๐`],[`Cable and Satellite Programming`,`๐ก`],[`Capital Markets`,`๐`],[`Caterers`,`๐ฝ๏ธ`],[`Chemical Manufacturing`,`โ๏ธ`],[`Chemical Raw Materials Manufacturing`,`๐งช`],[`Child Day Care Services`,`๐ถ`],[`Chiropractors`,`๐ฆด`],[`Circuses and Magic Shows`,`๐ช`],[`Civic and Social Organizations`,`๐๏ธ`],[`Civil Engineering`,`๐`],[`Claims Adjusting, Actuarial Services`,`๐งฎ`],[`Clay and Refractory Products Manufacturing`,`๐บ`],[`Climate Data and Analytics`,`๐ก๏ธ`],[`Climate Technology Product Manufacturing`,`๐`],[`Coal Mining`,`โ๏ธ`],[`Collection Agencies`,`๐ต`],[`Commercial and Industrial Equipment Rental`,`๐๏ธ`],[`Commercial and Industrial Machinery Maintenance`,`๐ง`],[`Commercial and Service Industry Machinery Manufacturing`,`๐ญ`],[`Communications Equipment Manufacturing`,`๐ก`],[`Community Development and Urban Planning`,`๐๏ธ`],[`Community Services`,`๐ซ`],[`Computer Games`,`๐ฎ`],[`Computer Hardware Manufacturing`,`๐ฅ๏ธ`],[`Computer Networking Products`,`๐`],[`Computer and Network Security`,`๐`],[`Computers and Electronics Manufacturing`,`๐ป`],[`Conservation Programs`,`๐ณ`],[`Construction`,`๐๏ธ`],[`Construction Hardware Manufacturing`,`๐ฉ`],[`Consumer Goods Rental`,`๐๏ธ`],[`Consumer Services`,`๐๏ธ`],[`Correctional Institutions`,`๐`],[`Cosmetology and Barber Schools`,`๐`],[`Courts of Law`,`โ๏ธ`],[`Credit Intermediation`,`๐ณ`],[`Cutlery and Handtool Manufacturing`,`๐ช`],[`Dairy Product Manufacturing`,`๐ฅ`],[`Dance Companies`,`๐`],[`Data Infrastructure and Analytics`,`๐`],[`Data Security Software Products`,`๐`],[`Defense and Space Manufacturing`,`๐`],[`Dentists`,`๐ฆท`],[`Design Services`,`๐จ`],[`Desktop Computing Software Products`,`๐ฅ๏ธ`],[`Digital Accessibility Services`,`โฟ`],[`Distilleries`,`๐ฅ`],[`E-Learning Providers`,`๐ป`],[`Economic Programs`,`๐น`],[`Education`,`๐`],[`Education Administration Programs`,`๐ซ`],[`Electric Lighting Equipment Manufacturing`,`๐ก`],[`Electric Power Generation`,`โก`],[`Electric Power Transmission, Control, and Distribution`,`๐`],[`Electrical Equipment Manufacturing`,`๐`],[`Electronic and Precision Equipment Maintenance`,`๐ง`],[`Embedded Software Products`,`๐พ`],[`Emergency and Relief Services`,`๐จ`],[`Engineering Services`,`๐ ๏ธ`],[`Engines and Power Transmission Equipment Manufacturing`,`โ๏ธ`],[`Entertainment Providers`,`๐ญ`],[`Environmental Quality Programs`,`๐ฟ`],[`Environmental Services`,`โป๏ธ`],[`Equipment Rental Services`,`๐๏ธ`],[`Events Services`,`๐`],[`Executive Offices`,`๐ข`],[`Executive Search Services`,`๐ฏ`],[`Fabricated Metal Products`,`๐ฉ`],[`Facilities Services`,`๐งน`],[`Family Planning Centers`,`๐จโ๐ฉโ๐ง`],[`Farming`,`๐พ`],[`Farming, Ranching, Forestry`,`๐`],[`Fashion Accessories Manufacturing`,`๐`],[`Financial Services`,`๐ฐ`],[`Fine Arts Schools`,`๐จ`],[`Fire Protection`,`๐ฅ`],[`Fisheries`,`๐ฃ`],[`Flight Training`,`โ๏ธ`],[`Food and Beverage Manufacturing`,`๐ฑ`],[`Food and Beverage Retail`,`๐`],[`Food and Beverage Services`,`๐ฝ๏ธ`],[`Footwear Manufacturing`,`๐`],[`Footwear and Leather Goods Repair`,`๐`],[`Forestry and Logging`,`๐ฒ`],[`Fossil Fuel Electric Power Generation`,`๐ข๏ธ`],[`Freight and Package Transportation`,`๐ฆ`],[`Fruit and Vegetable Preserves Manufacturing`,`๐ฅซ`],[`Fuel Cell Manufacturing`,`๐`],[`Fundraising`,`๐๏ธ`],[`Funds and Trusts`,`๐ฐ`],[`Furniture and Home Furnishings Manufacturing`,`๐๏ธ`],[`Gambling Facilities and Casinos`,`๐ฐ`],[`Geothermal Electric Power Generation`,`๐`],[`Glass Product Manufacturing`,`๐ช`],[`Glass, Ceramics and Concrete Manufacturing`,`๐งฑ`],[`Golf Courses and Country Clubs`,`โณ`],[`Government Administration`,`๐๏ธ`],[`Government Relations Services`,`๐๏ธ`],[`Graphic Design`,`๐จ`],[`Ground Passenger Transportation`,`๐`],[`HVAC and Refrigeration Equipment Manufacturing`,`โ๏ธ`],[`Health and Human Services`,`๐ฅ`],[`Higher Education`,`๐`],[`Highway, Street, and Bridge Construction`,`๐ฃ๏ธ`],[`Historical Sites`,`๐๏ธ`],[`Holding Companies`,`๐ข`],[`Home Health Care Services`,`๐ `],[`Horticulture`,`๐ท`],[`Hospitality`,`๐จ`],[`Hospitals`,`๐ฅ`],[`Hospitals and Health Care`,`๐ฅ`],[`Hotels and Motels`,`๐จ`],[`Household Appliance Manufacturing`,`๐ณ`],[`Household Services`,`๐งน`],[`Household and Institutional Furniture Manufacturing`,`๐ช`],[`Housing Programs`,`๐๏ธ`],[`Housing and Community Development`,`๐๏ธ`],[`Human Resources Services`,`๐ฅ`],[`Hydroelectric Power Generation`,`๐ง`],[`IT Services and IT Consulting`,`๐ป`],[`IT System Custom Software Development`,`๐ป`],[`IT System Data Services`,`๐๏ธ`],[`IT System Design Services`,`๐ฅ๏ธ`],[`IT System Installation and Disposal`,`๐ง`],[`IT System Operations and Maintenance`,`โ๏ธ`],[`IT System Testing and Evaluation`,`๐งช`],[`IT System Training and Support`,`๐`],[`Individual and Family Services`,`๐จโ๐ฉโ๐ง`],[`Industrial Machinery Manufacturing`,`๐ญ`],[`Industry Associations`,`๐ค`],[`Information Services`,`โน๏ธ`],[`Insurance`,`๐ก๏ธ`],[`Insurance Agencies and Brokerages`,`๐ก๏ธ`],[`Insurance Carriers`,`๐ก๏ธ`],[`Insurance and Employee Benefit Funds`,`๐ก๏ธ`],[`Interior Design`,`๐๏ธ`],[`International Affairs`,`๐`],[`International Trade and Development`,`๐`],[`Internet Marketplace Platforms`,`๐`],[`Internet News`,`๐ฐ`],[`Internet Publishing`,`๐ฐ`],[`Interurban and Rural Bus Services`,`๐`],[`Investment Advice`,`๐`],[`Investment Banking`,`๐ผ`],[`Investment Management`,`๐ฐ`],[`Janitorial Services`,`๐งน`],[`Landscaping Services`,`๐ณ`],[`Language Schools`,`๐ฃ๏ธ`],[`Laundry and Drycleaning Services`,`๐งบ`],[`Law Enforcement`,`๐`],[`Law Practice`,`โ๏ธ`],[`Leasing Non-residential Real Estate`,`๐ข`],[`Leasing Residential Real Estate`,`๐๏ธ`],[`Leather Product Manufacturing`,`๐`],[`Legal Services`,`โ๏ธ`],[`Legislative Offices`,`๐๏ธ`],[`Libraries`,`๐`],[`Lime and Gypsum Products Manufacturing`,`๐งฑ`],[`Loan Brokers`,`๐ณ`],[`Machinery Manufacturing`,`๐ญ`],[`Magnetic and Optical Media Manufacturing`,`๐ฟ`],[`Manufacturing`,`๐ญ`],[`Maritime Transportation`,`๐ข`],[`Market Research`,`๐`],[`Marketing Services`,`๐ฃ`],[`Mattress and Blinds Manufacturing`,`๐๏ธ`],[`Measuring and Control Instrument Manufacturing`,`๐`],[`Meat Products Manufacturing`,`๐ฅฉ`],[`Media Production`,`๐ฌ`],[`Media and Telecommunications`,`๐ก`],[`Medical Equipment Manufacturing`,`๐ฉบ`],[`Medical Practices`,`๐ฅ`],[`Medical and Diagnostic Laboratories`,`๐งช`],[`Mental Health Care`,`๐ง `],[`Metal Ore Mining`,`โ๏ธ`],[`Metal Treatments`,`๐ฅ`],[`Metal Valve, Ball, and Roller Manufacturing`,`โ๏ธ`],[`Metalworking Machinery Manufacturing`,`๐ฉ`],[`Military and International Affairs`,`๐ช`],[`Mining`,`โ๏ธ`],[`Mobile Computing Software Products`,`๐ฑ`],[`Mobile Food Services`,`๐`],[`Mobile Gaming Apps`,`๐ฎ`],[`Motor Vehicle Manufacturing`,`๐`],[`Motor Vehicle Parts Manufacturing`,`๐ง`],[`Movies and Sound Recording`,`๐ฌ`],[`Movies, Videos, and Sound`,`๐ฅ`],[`Museums`,`๐๏ธ`],[`Museums, Historical Sites, and Zoos`,`๐ฆ`],[`Musicians`,`๐ต`],[`Nanotechnology Research`,`๐ฌ`],[`Natural Gas Distribution`,`๐ฅ`],[`Natural Gas Extraction`,`โฝ`],[`Newspaper Publishing`,`๐ฐ`],[`Non-profit Organizations`,`๐`],[`Nonmetallic Mineral Mining`,`โ๏ธ`],[`Nonresidential Building Construction`,`๐ข`],[`Nuclear Electric Power Generation`,`โข๏ธ`],[`Nursing Homes and Residential Care Facilities`,`๐ฅ`],[`Office Administration`,`๐๏ธ`],[`Office Furniture and Fixtures Manufacturing`,`๐ช`],[`Oil Extraction`,`๐ข๏ธ`],[`Oil and Coal Product Manufacturing`,`๐ข๏ธ`],[`Oil and Gas`,`๐ข๏ธ`],[`Oil, Gas, and Mining`,`โ๏ธ`],[`Online Audio and Video Media`,`๐ฅ`],[`Online and Mail Order Retail`,`๐ฆ`],[`Operations Consulting`,`๐ผ`],[`Optometrists`,`๐`],[`Outpatient Care Centers`,`๐ฅ`],[`Outsourcing and Offshoring Consulting`,`๐`],[`Packaging and Containers Manufacturing`,`๐ฆ`],[`Paint, Coating, and Adhesive Manufacturing`,`๐จ`],[`Paper and Forest Product Manufacturing`,`๐`],[`Pension Funds`,`๐ฐ`],[`Performing Arts`,`๐ญ`],[`Performing Arts and Spectator Sports`,`๐ญ`],[`Periodical Publishing`,`๐ฐ`],[`Personal Care Product Manufacturing`,`๐งด`],[`Personal Care Services`,`๐`],[`Personal and Laundry Services`,`๐งบ`],[`Pet Services`,`๐พ`],[`Pharmaceutical Manufacturing`,`๐`],[`Philanthropic Fundraising Services`,`๐๏ธ`],[`Photography`,`๐ท`],[`Physical, Occupational and Speech Therapists`,`๐คธ`],[`Physicians`,`๐จโโ๏ธ`],[`Pipeline Transportation`,`๐ข๏ธ`],[`Plastics Manufacturing`,`๐ข๏ธ`],[`Plastics and Rubber Product Manufacturing`,`๐งฐ`],[`Political Organizations`,`๐ณ๏ธ`],[`Postal Services`,`๐ฎ`],[`Primary Metal Manufacturing`,`๐ฉ`],[`Primary and Secondary Education`,`๐ซ`],[`Printing Services`,`๐จ๏ธ`],[`Professional Organizations`,`๐ค`],[`Professional Services`,`๐ผ`],[`Professional Training and Coaching`,`๐`],[`Public Assistance Programs`,`๐คฒ`],[`Public Health`,`๐ฅ`],[`Public Policy Offices`,`๐๏ธ`],[`Public Relations and Communications Services`,`๐ฐ`],[`Public Safety`,`๐จ`],[`Racetracks`,`๐`],[`Radio and Television Broadcasting`,`๐ป`],[`Rail Transportation`,`๐`],[`Railroad Equipment Manufacturing`,`๐`],[`Ranching`,`๐`],[`Ranching and Fisheries`,`๐`],[`Real Estate`,`๐ `],[`Real Estate Agents and Brokers`,`๐`],[`Real Estate and Equipment Rental Services`,`๐๏ธ`],[`Recreational Facilities`,`๐ณ`],[`Regenerative Design`,`โป๏ธ`],[`Religious Institutions`,`โช`],[`Renewable Energy Equipment Manufacturing`,`๐`],[`Renewable Energy Power Generation`,`๐`],[`Renewable Energy Semiconductor Manufacturing`,`๐`],[`Repair and Maintenance`,`๐ง`],[`Research Services`,`๐ฌ`],[`Residential Building Construction`,`๐ `],[`Restaurants`,`๐ฝ๏ธ`],[`Retail`,`๐๏ธ`],[`Retail Apparel and Fashion`,`๐`],[`Retail Appliances, Electrical, and Electronic Equipment`,`๐บ`],[`Retail Art Dealers`,`๐ผ๏ธ`],[`Retail Art Supplies`,`๐จ`],[`Retail Books and Printed News`,`๐`],[`Retail Building Materials and Garden Equipment`,`๐ชด`],[`Retail Florists`,`๐`],[`Retail Furniture and Home Furnishings`,`๐๏ธ`],[`Retail Gasoline`,`โฝ`],[`Retail Groceries`,`๐`],[`Retail Health and Personal Care Products`,`๐งด`],[`Retail Luxury Goods and Jewelry`,`๐`],[`Retail Motor Vehicles`,`๐`],[`Retail Musical Instruments`,`๐ธ`],[`Retail Office Equipment`,`๐จ๏ธ`],[`Retail Office Supplies and Gifts`,`๐`],[`Retail Pharmacies`,`๐`],[`Retail Recyclable Materials & Used Merchandise`,`โป๏ธ`],[`Reupholstery and Furniture Repair`,`๐ช`],[`Robot Manufacturing`,`๐ค`],[`Robotics Engineering`,`๐ค`],[`Rubber Products Manufacturing`,`๐`],[`Satellite Telecommunications`,`๐ฐ๏ธ`],[`Savings Institutions`,`๐ฆ`],[`School and Employee Bus Services`,`๐`],[`Seafood Product Manufacturing`,`๐`],[`Secretarial Schools`,`๐`],[`Securities and Commodity Exchanges`,`๐`],[`Security Guards and Patrol Services`,`๐ฎ`],[`Security Systems Services`,`๐`],[`Security and Investigations`,`๐ต๏ธ`],[`Semiconductor Manufacturing`,`๐พ`],[`Services for Renewable Energy`,`๐`],[`Services for the Elderly and Disabled`,`๐ด`],[`Sheet Music Publishing`,`๐ผ`],[`Shipbuilding`,`๐ข`],[`Shuttles and Special Needs Transportation Services`,`๐`],[`Sightseeing Transportation`,`๐`],[`Skiing Facilities`,`โท๏ธ`],[`Smart Meter Manufacturing`,`๐`],[`Soap and Cleaning Product Manufacturing`,`๐งผ`],[`Social Networking Platforms`,`๐ฌ`],[`Software Development`,`๐ป`],[`Solar Electric Power Generation`,`โ๏ธ`],[`Sound Recording`,`๐๏ธ`],[`Space Research and Technology`,`๐`],[`Specialty Trade Contractors`,`๐จ`],[`Spectator Sports`,`๐๏ธ`],[`Sporting Goods Manufacturing`,`๐`],[`Sports Teams and Clubs`,`โฝ`],[`Sports and Recreation Instruction`,`๐`],[`Spring and Wire Product Manufacturing`,`๐ฉ`],[`Staffing and Recruiting`,`๐ฏ`],[`Steam and Air-Conditioning Supply`,`โจ๏ธ`],[`Strategic Management Services`,`๐ฏ`],[`Subdivision of Land`,`๐บ๏ธ`],[`Sugar and Confectionery Product Manufacturing`,`๐ฌ`],[`Surveying and Mapping Services`,`๐บ๏ธ`],[`Taxi and Limousine Services`,`๐`],[`Technical and Vocational Training`,`๐`],[`Technology, Information and Internet`,`๐ป`],[`Technology, Information and Media`,`๐ก`],[`Telecommunications`,`๐ก`],[`Telecommunications Carriers`,`๐ถ`],[`Telephone Call Centers`,`๐`],[`Temporary Help Services`,`๐ท`],[`Textile Manufacturing`,`๐งต`],[`Theater Companies`,`๐ญ`],[`Think Tanks`,`๐ง `],[`Tobacco Manufacturing`,`๐ฌ`],[`Translation and Localization`,`๐`],[`Transportation Equipment Manufacturing`,`๐`],[`Transportation Programs`,`๐`],[`Transportation, Logistics, Supply Chain and Storage`,`๐`],[`Travel Arrangements`,`๐งณ`],[`Truck Transportation`,`๐`],[`Trusts and Estates`,`๐`],[`Turned Products and Fastener Manufacturing`,`๐ฉ`],[`Urban Transit Services`,`๐`],[`Utilities`,`๐ก`],[`Utilities Administration`,`๐`],[`Utility System Construction`,`๐๏ธ`],[`Vehicle Repair and Maintenance`,`๐ง`],[`Venture Capital and Private Equity Principals`,`๐ฐ`],[`Veterinary Services`,`๐พ`],[`Vocational Rehabilitation Services`,`๐ฆฝ`],[`Warehousing and Storage`,`๐ฌ`],[`Waste Collection`,`๐๏ธ`],[`Waste Treatment and Disposal`,`โป๏ธ`],[`Water Supply and Irrigation Systems`,`๐ง`],[`Water, Waste, Steam, and Air Conditioning Services`,`๐ง`],[`Wellness and Fitness Services`,`๐ง`],[`Wholesale`,`๐ฆ`],[`Wholesale Alcoholic Beverages`,`๐ท`],[`Wholesale Apparel and Sewing Supplies`,`๐งต`],[`Wholesale Appliances, Electrical, and Electronics`,`๐บ`],[`Wholesale Building Materials`,`๐งฑ`],[`Wholesale Chemical and Allied Products`,`๐งช`],[`Wholesale Computer Equipment`,`๐ป`],[`Wholesale Drugs and Sundries`,`๐`],[`Wholesale Food and Beverage`,`๐ฅซ`],[`Wholesale Footwear`,`๐`],[`Wholesale Furniture and Home Furnishings`,`๐๏ธ`],[`Wholesale Hardware, Plumbing, Heating Equipment`,`๐ง`],[`Wholesale Import and Export`,`๐`],[`Wholesale Luxury Goods and Jewelry`,`๐`],[`Wholesale Machinery`,`๐ญ`],[`Wholesale Metals and Minerals`,`โ๏ธ`],[`Wholesale Motor Vehicles and Parts`,`๐`],[`Wholesale Paper Products`,`๐`],[`Wholesale Petroleum and Petroleum Products`,`๐ข๏ธ`],[`Wholesale Photography Equipment and Supplies`,`๐ท`],[`Wholesale Raw Farm Products`,`๐พ`],[`Wholesale Recyclable Materials`,`โป๏ธ`],[`Wind Electric Power Generation`,`๐ฌ๏ธ`],[`Wineries`,`๐ท`],[`Wireless Services`,`๐ถ`],[`Women's Handbag Manufacturing`,`๐`],[`Wood Product Manufacturing`,`๐ชต`],[`Writing and Editing`,`โ๏ธ`],[`Zoos and Botanical Gardens`,`๐ฆ`]]),ye=e=>e.map(e=>({value:e,label:e})),be=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),xe=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),Se=be([[`myself only`,`๐ง`],[`2-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1000`,`๐๏ธ`],[`1001-5000`,`๐๏ธ`],[`5001-10000`,`๐`],[`10001+`,`๐`]]),Ce=be([[`1-500`,`โจ`],[`501-1000`,`โญ`],[`1001-5000`,`๐`],[`5001-10000`,`๐ซ`],[`10001-30000`,`๐ `],[`30000+`,`๐`]]),we=be([[`Series A`,`1๏ธโฃ`],[`Series B`,`2๏ธโฃ`],[`Series C`,`3๏ธโฃ`],[`Series D`,`4๏ธโฃ`]]),Te=be([[`Self-employed`,`๐งโ๐ป`],[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1,000`,`๐๏ธ`],[`1,001-5,000`,`๐๏ธ`],[`5,001-10,000`,`๐`],[`10,001+`,`๐`]]),Ee=[{value:`Arabic`,label:`Arabic`,widgets:{emoji:{char:`๐ธ๐ฆ`}}},{value:`English`,label:`English`,widgets:{emoji:{char:`๐ฌ๐ง`}}},{value:`Spanish`,label:`Spanish`,widgets:{emoji:{char:`๐ช๐ธ`}}},{value:`Portuguese`,label:`Portuguese`,widgets:{emoji:{char:`๐ต๐น`}}},{value:`Chinese`,label:`Chinese`,widgets:{emoji:{char:`๐จ๐ณ`}}},{value:`French`,label:`French`,widgets:{emoji:{char:`๐ซ๐ท`}}},{value:`Italian`,label:`Italian`,widgets:{emoji:{char:`๐ฎ๐น`}}},{value:`Russian`,label:`Russian`,widgets:{emoji:{char:`๐ท๐บ`}}},{value:`German`,label:`German`,widgets:{emoji:{char:`๐ฉ๐ช`}}},{value:`Dutch`,label:`Dutch`,widgets:{emoji:{char:`๐ณ๐ฑ`}}},{value:`Turkish`,label:`Turkish`,widgets:{emoji:{char:`๐น๐ท`}}},{value:`Tagalog`,label:`Tagalog`,widgets:{emoji:{char:`๐ต๐ญ`}}},{value:`Polish`,label:`Polish`,widgets:{emoji:{char:`๐ต๐ฑ`}}},{value:`Korean`,label:`Korean`,widgets:{emoji:{char:`๐ฐ๐ท`}}},{value:`Japanese`,label:`Japanese`,widgets:{emoji:{char:`๐ฏ๐ต`}}},{value:`Malay`,label:`Malay`,widgets:{emoji:{char:`๐ฒ๐พ`}}},{value:`Norwegian`,label:`Norwegian`,widgets:{emoji:{char:`๐ณ๐ด`}}},{value:`Danish`,label:`Danish`,widgets:{emoji:{char:`๐ฉ๐ฐ`}}},{value:`Romanian`,label:`Romanian`,widgets:{emoji:{char:`๐ท๐ด`}}},{value:`Swedish`,label:`Swedish`,widgets:{emoji:{char:`๐ธ๐ช`}}},{value:`Bahasa Indonesia`,label:`Bahasa Indonesia`,widgets:{emoji:{char:`๐ฎ๐ฉ`}}},{value:`Czech`,label:`Czech`,widgets:{emoji:{char:`๐จ๐ฟ`}}}],De=xe([[`funding_round`,`Raised a round`,`๐ฐ`],[`acquisition`,`Made an acquisition`,`๐ค`],[`news`,`Appeared in the news`,`๐ฐ`],[`headcount`,`Headcount changed`,`๐`],[`hiring`,`Hiring activity changed`,`๐`],[`industry`,`Industry changed`,`๐ญ`],[`hq_relocation`,`HQ relocated`,`๐`],[`rebrand`,`Renamed`,`๐ค`]]),Oe=xe([[`new_job`,`Started a new job`,`๐ผ`],[`title_change`,`Title changed`,`๐ท๏ธ`],[`headline`,`Headline changed`,`โ๏ธ`],[`relocation`,`Relocated`,`๐`]]),ke=be([[`Owner / Partner`,`๐`],[`CXO`,`๐ฉ`],[`Vice President`,`๐
`],[`Director`,`๐ฏ`],[`Experienced Manager`,`๐งโ๐ผ`],[`Entry Level Manager`,`๐`],[`Strategic`,`โ๏ธ`],[`Senior`,`โญ`],[`Entry Level`,`๐ฑ`],[`In Training`,`๐`]]);be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]),be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]);const Ae=be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]),je=xe([[`past-24h`,`Past 24 hours`,`๐`],[`past-week`,`Past week`,`๐
`],[`past-month`,`Past month`,`๐๏ธ`],[`past-quarter`,`Past quarter`,`๐`],[`past-year`,`Past year`,`๐`]]),Me=xe([[`photos`,`Photos`,`๐ผ๏ธ`],[`jobs`,`Jobs`,`๐ผ`],[`collaborativeArticles`,`Collaborative articles`,`๐`],[`videos`,`Videos`,`๐ฌ`],[`documents`,`Documents`,`๐`],[`liveVideos`,`Live videos`,`๐ก`]]),Ne=be([[`Accounting`,`๐`],[`Administrative`,`๐`],[`Arts and Design`,`๐จ`],[`Business Development`,`๐`],[`Community and Social Services`,`๐ซ`],[`Consulting`,`๐ผ`],[`Education`,`๐`],[`Engineering`,`๐ ๏ธ`],[`Entrepreneurship`,`๐`],[`Finance`,`๐ฐ`],[`Healthcare Services`,`๐ฅ`],[`Human Resources`,`๐ฅ`],[`Information Technology`,`๐ป`],[`Legal`,`โ๏ธ`],[`Marketing`,`๐ฃ`],[`Media and Communication`,`๐บ`],[`Military and Protective Services`,`๐ก๏ธ`],[`Operations`,`โ๏ธ`],[`Product Management`,`๐ฆ`],[`Program and Project Management`,`๐
`],[`Purchasing`,`๐`],[`Quality Assurance`,`โ
`],[`Real Estate`,`๐๏ธ`],[`Research`,`๐ฌ`],[`Sales`,`๐ธ`],[`Customer Success and Support`,`๐ง`]]),Pe=be([[`Public Company`,`๐`],[`Privately Held`,`๐`],[`Non Profit`,`๐`],[`Educational Institution`,`๐`],[`Partnership`,`๐ค`],[`Self Employed`,`๐ค`],[`Self Owned`,`๐ชช`],[`Government Agency`,`๐๏ธ`]]),Fe=ye([`0-10%`,`10-20%`,`20-50%`,`50-70%`,`70%+`]);ye([`0-10%`,`10-20%`,`20-50%`,`50-70%`,`70%+`]);const Ie=xe([[`angel`,`Angel`,`๐`],[`convertible_note`,`Convertible Note`,`๐`],[`corporate_round`,`Corporate Round`,`๐ข`],[`debt_financing`,`Debt Financing`,`๐ณ`],[`equity_crowdfunding`,`Equity Crowdfunding`,`๐`],[`grant`,`Grant`,`๐`],[`initial_coin_offering`,`Initial Coin Offering`,`๐ช`],[`non_equity_assistance`,`Non Equity Assistance`,`๐คฒ`],[`post_ipo_debt`,`Post IPO Debt`,`๐๏ธ`],[`post_ipo_equity`,`Post IPO Equity`,`๐`],[`post_ipo_secondary`,`Post IPO Secondary`,`๐`],[`pre_seed`,`Pre Seed`,`๐ฑ`],[`private_equity`,`Private Equity`,`๐ผ`],[`product_crowdfunding`,`Product Crowdfunding`,`๐ฆ`],[`secondary_market`,`Secondary Market`,`๐`],[`seed`,`Seed`,`๐ฟ`],[`series_a`,`Series A`,`1๏ธโฃ`],[`series_b`,`Series B`,`2๏ธโฃ`],[`series_c`,`Series C`,`3๏ธโฃ`],[`series_d`,`Series D`,`4๏ธโฃ`],[`series_e`,`Series E`,`5๏ธโฃ`],[`series_f`,`Series F`,`6๏ธโฃ`],[`series_g`,`Series G`,`7๏ธโฃ`],[`series_h`,`Series H`,`8๏ธโฃ`],[`series_i`,`Series I`,`9๏ธโฃ`],[`series_j`,`Series J`,`๐`],[`series_unknown`,`Series Unknown`,`โ`],[`undisclosed`,`Undisclosed`,`๐ค`]]),Le=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),eee=Le([[`Engineering`,`๐ ๏ธ`],[`Sales`,`๐ธ`],[`Consulting`,`๐ผ`],[`Marketing`,`๐ฃ`],[`Operations`,`โ๏ธ`],[`Finance`,`๐ฐ`],[`Research`,`๐ฌ`],[`Customer Success and Support`,`๐ง`],[`Arts and Design`,`๐จ`],[`Human Resources`,`๐ฅ`],[`Legal`,`โ๏ธ`],[`Product Management`,`๐ฆ`]]),tee=Le([[`Remote`,`๐๏ธ`],[`Hybrid`,`๐`],[`On-site`,`๐ข`]]),Re=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),ze=Le([[`Public Company`,`๐`],[`Privately Held`,`๐`],[`Nonprofit`,`๐`],[`Educational Institution`,`๐`],[`Partnership`,`๐ค`],[`Self-Employed`,`๐ค`],[`Sole Proprietorship`,`๐ชช`],[`Government Agency`,`๐๏ธ`]]),Be=Le([[`PRIVATE`,`๐`],[`NASDAQ`,`๐`],[`NYSE`,`๐`],[`NYSEMKT`,`๐`],[`BSE`,`๐`],[`NSE`,`๐`],[`TYO`,`๐`],[`SZSE`,`๐`],[`SEHK`,`๐`],[`NEEQ`,`๐`],[`LSE`,`๐`],[`ASX`,`๐`],[`TPE`,`๐`],[`TSEC`,`๐`],[`EPA`,`๐`],[`TSX`,`๐`],[`KLSE`,`๐`],[`FRA`,`๐`],[`FWB`,`๐`],[`BKK`,`๐`],[`STO`,`๐`],[`SGX`,`๐`],[`TLV`,`๐`],[`WSE`,`๐`],[`IST`,`๐`],[`KRX`,`๐`],[`BVMF`,`๐`],[`ETR`,`๐`],[`CNSX`,`๐`],[`TADAWUL`,`๐`],[`HOSE`,`๐`],[`HNX`,`๐`],[`OSE`,`๐`],[`COL`,`๐`],[`AMS`,`๐`],[`BMV`,`๐`],[`PSE`,`๐`],[`EGX`,`๐`],[`CPH`,`๐`],[`KSE`,`๐`],[`NZE`,`๐`],[`MOEX`,`๐`],[`NIG`,`๐`],[`ATH`,`๐`],[`ADX`,`๐`],[`PSX`,`๐`],[`VIE`,`๐`],[`CAS`,`๐`],[`PFTS`,`๐`],[`BCBA`,`๐`],[`SIX`,`๐`],[`DFM`,`๐`],[`NGM`,`๐`],[`PEX`,`๐`],[`JSEJAM`,`๐`],[`GHA`,`๐`],[`ICE`,`๐`],[`NASDAQVILNIUS`,`๐`],[`DUS`,`๐`],[`TTSE`,`๐`],[`STU`,`๐`],[`LUXSE`,`๐`],[`LUSE`,`๐`],[`SEM`,`๐`],[`MAL`,`๐`],[`XBER`,`๐`],[`TSEIR`,`๐`],[`TISE`,`๐`],[`NPEX`,`๐`]]),Ve=Le([[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-1,000`,`๐ฌ`],[`1,000+`,`๐๏ธ`]]),He=Re([[`AFG`,`Afghanistan`,`๐ฆ๐ซ`],[`ALB`,`Albania`,`๐ฆ๐ฑ`],[`DZA`,`Algeria`,`๐ฉ๐ฟ`],[`AND`,`Andorra`,`๐ฆ๐ฉ`],[`AGO`,`Angola`,`๐ฆ๐ด`],[`ATG`,`Antigua and Barbuda`,`๐ฆ๐ฌ`],[`ARG`,`Argentina`,`๐ฆ๐ท`],[`ARM`,`Armenia`,`๐ฆ๐ฒ`],[`AUS`,`Australia`,`๐ฆ๐บ`],[`AUT`,`Austria`,`๐ฆ๐น`],[`AZE`,`Azerbaijan`,`๐ฆ๐ฟ`],[`BHS`,`Bahamas (the)`,`๐ง๐ธ`],[`BHR`,`Bahrain`,`๐ง๐ญ`],[`BGD`,`Bangladesh`,`๐ง๐ฉ`],[`BRB`,`Barbados`,`๐ง๐ง`],[`BLR`,`Belarus`,`๐ง๐พ`],[`BEL`,`Belgium`,`๐ง๐ช`],[`BLZ`,`Belize`,`๐ง๐ฟ`],[`BEN`,`Benin`,`๐ง๐ฏ`],[`BTN`,`Bhutan`,`๐ง๐น`],[`BOL`,`Bolivia (Plurinational State of)`,`๐ง๐ด`],[`BIH`,`Bosnia and Herzegovina`,`๐ง๐ฆ`],[`BWA`,`Botswana`,`๐ง๐ผ`],[`BRA`,`Brazil`,`๐ง๐ท`],[`BRN`,`Brunei Darussalam`,`๐ง๐ณ`],[`BGR`,`Bulgaria`,`๐ง๐ฌ`],[`BFA`,`Burkina Faso`,`๐ง๐ซ`],[`BDI`,`Burundi`,`๐ง๐ฎ`],[`CPV`,`Cabo Verde`,`๐จ๐ป`],[`KHM`,`Cambodia`,`๐ฐ๐ญ`],[`CMR`,`Cameroon`,`๐จ๐ฒ`],[`CAN`,`Canada`,`๐จ๐ฆ`],[`CAF`,`Central African Republic (the)`,`๐จ๐ซ`],[`TCD`,`Chad`,`๐น๐ฉ`],[`CHL`,`Chile`,`๐จ๐ฑ`],[`CHN`,`China`,`๐จ๐ณ`],[`COL`,`Colombia`,`๐จ๐ด`],[`COM`,`Comoros (the)`,`๐ฐ๐ฒ`],[`COG`,`Congo (the)`,`๐จ๐ฌ`],[`COK`,`Cook Islands (the) **`,`๐`],[`COK`,`Cook Islands (the) **`,`๐จ๐ฐ`],[`CRI`,`Costa Rica`,`๐จ๐ท`],[`HRV`,`Croatia`,`๐ญ๐ท`],[`CUB`,`Cuba`,`๐จ๐บ`],[`CYP`,`Cyprus`,`๐จ๐พ`],[`CZE`,`Czech Republic (the)`,`๐จ๐ฟ`],[`CIV`,`Cรดte d'Ivoire`,`๐จ๐ฎ`],[`PRK`,`Democratic People's Republic of Korea (the)`,`๐ฐ๐ต`],[`COD`,`Democratic Republic of the Congo (the)`,`๐จ๐ฉ`],[`DNK`,`Denmark`,`๐ฉ๐ฐ`],[`DJI`,`Djibouti`,`๐ฉ๐ฏ`],[`DMA`,`Dominica`,`๐ฉ๐ฒ`],[`DOM`,`Dominican Republic (the)`,`๐ฉ๐ด`],[`ECU`,`Ecuador`,`๐ช๐จ`],[`EGY`,`Egypt`,`๐ช๐ฌ`],[`SLV`,`El Salvador`,`๐ธ๐ป`],[`GNQ`,`Equatorial Guinea`,`๐ฌ๐ถ`],[`ERI`,`Eritrea`,`๐ช๐ท`],[`EST`,`Estonia`,`๐ช๐ช`],[`ETH`,`Ethiopia`,`๐ช๐น`],[`FJI`,`Fiji`,`๐ซ๐ฏ`],[`FIN`,`Finland`,`๐ซ๐ฎ`],[`FRA`,`France`,`๐ซ๐ท`],[`GAB`,`Gabon`,`๐ฌ๐ฆ`],[`GMB`,`Gambia (the)`,`๐ฌ๐ฒ`],[`GEO`,`Georgia`,`๐ฌ๐ช`],[`DEU`,`Germany`,`๐ฉ๐ช`],[`GHA`,`Ghana`,`๐ฌ๐ญ`],[`GRC`,`Greece`,`๐ฌ๐ท`],[`GRD`,`Grenada`,`๐ฌ๐ฉ`],[`GTM`,`Guatemala`,`๐ฌ๐น`],[`GIN`,`Guinea`,`๐ฌ๐ณ`],[`GNB`,`Guinea-Bissau`,`๐ฌ๐ผ`],[`GUY`,`Guyana`,`๐ฌ๐พ`],[`HTI`,`Haiti`,`๐ญ๐น`],[`VAT`,`Holy See (the) *`,`๐ป๐ฆ`],[`HND`,`Honduras`,`๐ญ๐ณ`],[`HUN`,`Hungary`,`๐ญ๐บ`],[`ISL`,`Iceland`,`๐ฎ๐ธ`],[`IND`,`India`,`๐ฎ๐ณ`],[`IDN`,`Indonesia`,`๐ฎ๐ฉ`],[`IRN`,`Iran (Islamic Republic of)`,`๐ฎ๐ท`],[`IRQ`,`Iraq`,`๐ฎ๐ถ`],[`IRL`,`Ireland`,`๐ฎ๐ช`],[`ISR`,`Israel`,`๐ฎ๐ฑ`],[`ITA`,`Italy`,`๐ฎ๐น`],[`JAM`,`Jamaica`,`๐ฏ๐ฒ`],[`JPN`,`Japan`,`๐ฏ๐ต`],[`JOR`,`Jordan`,`๐ฏ๐ด`],[`KAZ`,`Kazakhstan`,`๐ฐ๐ฟ`],[`KEN`,`Kenya`,`๐ฐ๐ช`],[`KIR`,`Kiribati`,`๐ฐ๐ฎ`],[`KWT`,`Kuwait`,`๐ฐ๐ผ`],[`KGZ`,`Kyrgyzstan`,`๐ฐ๐ฌ`],[`LAO`,`Lao People's Democratic Republic (the)`,`๐ฑ๐ฆ`],[`LVA`,`Latvia`,`๐ฑ๐ป`],[`LBN`,`Lebanon`,`๐ฑ๐ง`],[`LSO`,`Lesotho`,`๐ฑ๐ธ`],[`LBR`,`Liberia`,`๐ฑ๐ท`],[`LBY`,`Libya`,`๐ฑ๐พ`],[`LIE`,`Liechtenstein`,`๐ฑ๐ฎ`],[`LTU`,`Lithuania`,`๐ฑ๐น`],[`LUX`,`Luxembourg`,`๐ฑ๐บ`],[`MDG`,`Madagascar`,`๐ฒ๐ฌ`],[`MWI`,`Malawi`,`๐ฒ๐ผ`],[`MYS`,`Malaysia`,`๐ฒ๐พ`],[`MDV`,`Maldives`,`๐ฒ๐ป`],[`MLI`,`Mali`,`๐ฒ๐ฑ`],[`MLT`,`Malta`,`๐ฒ๐น`],[`MHL`,`Marshall Islands (the)`,`๐ฒ๐ญ`],[`MRT`,`Mauritania`,`๐ฒ๐ท`],[`MUS`,`Mauritius`,`๐ฒ๐บ`],[`MEX`,`Mexico`,`๐ฒ๐ฝ`],[`FSM`,`Micronesia (Federated States of)`,`๐ซ๐ฒ`],[`MCO`,`Monaco`,`๐ฒ๐จ`],[`MNG`,`Mongolia`,`๐ฒ๐ณ`],[`MNE`,`Montenegro`,`๐ฒ๐ช`],[`MAR`,`Morocco`,`๐ฒ๐ฆ`],[`MOZ`,`Mozambique`,`๐ฒ๐ฟ`],[`MMR`,`Myanmar`,`๐ฒ๐ฒ`],[`NAM`,`Namibia`,`๐ณ๐ฆ`],[`NRU`,`Nauru`,`๐ณ๐ท`],[`NPL`,`Nepal`,`๐ณ๐ต`],[`NLD`,`Netherlands (the)`,`๐ณ๐ฑ`],[`NZL`,`New Zealand`,`๐ณ๐ฟ`],[`NIC`,`Nicaragua`,`๐ณ๐ฎ`],[`NER`,`Niger (the)`,`๐ณ๐ช`],[`NGA`,`Nigeria`,`๐ณ๐ฌ`],[`NIU`,`Niue **`,`๐ณ๐บ`],[`NIU`,`Niue **`,`๐`],[`NOR`,`Norway`,`๐ณ๐ด`],[`OMN`,`Oman`,`๐ด๐ฒ`],[`PAK`,`Pakistan`,`๐ต๐ฐ`],[`PLW`,`Palau`,`๐ต๐ผ`],[`PAN`,`Panama`,`๐ต๐ฆ`],[`PNG`,`Papua New Guinea`,`๐ต๐ฌ`],[`PRY`,`Paraguay`,`๐ต๐พ`],[`PER`,`Peru`,`๐ต๐ช`],[`PHL`,`Philippines (the)`,`๐ต๐ญ`],[`POL`,`Poland`,`๐ต๐ฑ`],[`PRT`,`Portugal`,`๐ต๐น`],[`QAT`,`Qatar`,`๐ถ๐ฆ`],[`MDA`,`Republic of Moldova (the)`,`๐ฒ๐ฉ`],[`ROU`,`Romania`,`๐ท๐ด`],[`RUS`,`Russian Federation (the)`,`๐ท๐บ`],[`RWA`,`Rwanda`,`๐ท๐ผ`],[`KNA`,`Saint Kitts and Nevis`,`๐ฐ๐ณ`],[`LCA`,`Saint Lucia`,`๐ฑ๐จ`],[`VCT`,`Saint Vincent and the Grenadines`,`๐ป๐จ`],[`WSM`,`Samoa`,`๐ผ๐ธ`],[`SMR`,`San Marino`,`๐ธ๐ฒ`],[`STP`,`Sao Tome and Principe`,`๐ธ๐น`],[`SAU`,`Saudi Arabia`,`๐ธ๐ฆ`],[`SEN`,`Senegal`,`๐ธ๐ณ`],[`SRB`,`Serbia`,`๐ท๐ธ`],[`SYC`,`Seychelles`,`๐ธ๐จ`],[`SLE`,`Sierra Leone`,`๐ธ๐ฑ`],[`SGP`,`Singapore`,`๐ธ๐ฌ`],[`SVK`,`Slovakia`,`๐ธ๐ฐ`],[`SVN`,`Slovenia`,`๐ธ๐ฎ`],[`SLB`,`Solomon Islands`,`๐ธ๐ง`],[`SOM`,`Somalia`,`๐ธ๐ด`],[`ZAF`,`South Africa`,`๐ฟ๐ฆ`],[`KOR`,`South Korea`,`๐ฐ๐ท`],[`SSD`,`South Sudan`,`๐ธ๐ธ`],[`ESP`,`Spain`,`๐ช๐ธ`],[`LKA`,`Sri Lanka`,`๐ฑ๐ฐ`],[`PSE`,`State of Palestine *`,`๐ต๐ธ`],[`SDN`,`Sudan (the)`,`๐ธ๐ฉ`],[`SUR`,`Suriname`,`๐ธ๐ท`],[`SWE`,`Sweden`,`๐ธ๐ช`],[`CHE`,`Switzerland`,`๐จ๐ญ`],[`SYR`,`Syrian Arab Republic`,`๐ธ๐พ`],[`TJK`,`Tajikistan`,`๐น๐ฏ`],[`THA`,`Thailand`,`๐น๐ญ`],[`TLS`,`Timor-Leste`,`๐น๐ฑ`],[`TGO`,`Togo`,`๐น๐ฌ`],[`TON`,`Tonga`,`๐น๐ด`],[`TTO`,`Trinidad and Tobago`,`๐น๐น`],[`TUN`,`Tunisia`,`๐น๐ณ`],[`TUR`,`Turkey`,`๐น๐ท`],[`TKM`,`Turkmenistan`,`๐น๐ฒ`],[`TUV`,`Tuvalu`,`๐น๐ป`],[`UGA`,`Uganda`,`๐บ๐ฌ`],[`UKR`,`Ukraine`,`๐บ๐ฆ`],[`ARE`,`United Arab Emirates (the)`,`๐ฆ๐ช`],[`GBR`,`United Kingdom of Great Britain and Northern Ireland (the)`,`๐ฌ๐ง`],[`TZA`,`United Republic of Tanzania (the)`,`๐น๐ฟ`],[`USA`,`United States of America (the)`,`๐บ๐ธ`],[`URY`,`Uruguay`,`๐บ๐พ`],[`UZB`,`Uzbekistan`,`๐บ๐ฟ`],[`VUT`,`Vanuatu`,`๐ป๐บ`],[`VEN`,`Venezuela (Bolivarian Republic of)`,`๐ป๐ช`],[`VNM`,`Viet Nam`,`๐ป๐ณ`],[`YEM`,`Yemen`,`๐พ๐ช`],[`ZMB`,`Zambia`,`๐ฟ๐ฒ`],[`ZWE`,`Zimbabwe`,`๐ฟ๐ผ`],[`MKD`,`the former Yugoslav Republic of Macedonia`,`๐ฒ๐ฐ`]]),Ue=[{value:`https://techcrunch.com/feed/`,label:`https://techcrunch.com/feed/`,widgets:{emoji:{char:`๐ฐ`}}},{value:`https://news.crunchbase.com/feed/`,label:`https://news.crunchbase.com/feed/`,widgets:{emoji:{char:`๐ฐ`}}},{value:`https://www.producthunt.com/feed`,label:`https://www.producthunt.com/feed`,widgets:{emoji:{char:`๐`}}},{value:`https://www.lennysnewsletter.com/feed`,label:`https://www.lennysnewsletter.com/feed`,widgets:{emoji:{char:`โ๏ธ`}}},{value:`https://www.saastr.com/feed/`,label:`https://www.saastr.com/feed/`,widgets:{emoji:{char:`๐`}}},{value:`https://www.gong.io/blog/rss.xml`,label:`https://www.gong.io/blog/rss.xml`,widgets:{emoji:{char:`๐ฏ`}}},{value:`https://blog.hubspot.com/sales/rss.xml`,label:`https://blog.hubspot.com/sales/rss.xml`,widgets:{emoji:{char:`๐ `}}},{value:`https://community.n8n.io/latest.rss`,label:`https://community.n8n.io/latest.rss`,widgets:{emoji:{char:`๐`}}},{value:`https://community.retool.com/latest.rss`,label:`https://community.retool.com/latest.rss`,widgets:{emoji:{char:`๐ `}}},{value:`https://forum.bubble.io/latest.rss`,label:`https://forum.bubble.io/latest.rss`,widgets:{emoji:{char:`๐ซง`}}},{value:`https://meta.discourse.org/latest.rss`,label:`https://meta.discourse.org/latest.rss`,widgets:{emoji:{char:`๐ฌ`}}},{value:`https://news.ycombinator.com/rss`,label:`https://news.ycombinator.com/rss`,widgets:{emoji:{char:`๐ง`}}},{value:`https://blog.cloudflare.com/rss/`,label:`https://blog.cloudflare.com/rss/`,widgets:{emoji:{char:`โ๏ธ`}}},{value:`https://github.com/OWNER/REPO/releases.atom`,label:`https://github.com/OWNER/REPO/releases.atom`,widgets:{emoji:{char:`๐`}}}],We=(e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})))([[`Abrasives and Nonmetallic Minerals Manufacturing`,`๐ชจ`],[`Accessible Architecture and Design`,`โฟ`],[`Accessible Hardware Manufacturing`,`โฟ`],[`Accommodation and Food Services`,`๐จ`],[`Accounting`,`๐`],[`Administration of Justice`,`โ๏ธ`],[`Administrative and Support Services`,`๐`],[`Advertising Services`,`๐ฃ`],[`Agriculture`,`๐พ`],[`Air, Water, and Waste Program Management`,`โป๏ธ`],[`Airlines and Aviation`,`โ๏ธ`],[`Alternative Dispute Resolution`,`๐ค`],[`Alternative Fuel Vehicle Manufacturing`,`๐`],[`Alternative Medicine`,`๐ฟ`],[`Ambulance Services`,`๐`],[`Amusement Parks and Arcades`,`๐ข`],[`Animal Feed Manufacturing`,`๐`],[`Animation`,`๐๏ธ`],[`Animation and Post-production`,`๐ฌ`],[`Apparel & Fashion`,`๐`],[`Apparel Manufacturing`,`๐งต`],[`Appliances, Electrical, and Electronics Manufacturing`,`๐`],[`Architectural and Structural Metal Manufacturing`,`๐๏ธ`],[`Architecture and Planning`,`๐`],[`Armed Forces`,`๐ช`],[`Artificial Rubber and Synthetic Fiber Manufacturing`,`๐งช`],[`Artists and Writers`,`๐จ`],[`Arts`,`๐จ`],[`Arts & Crafts`,`๐๏ธ`],[`Audio and Video Equipment Manufacturing`,`๐ง`],[`Automation Machinery Manufacturing`,`๐ค`],[`Automotive`,`๐`],[`Aviation & Aerospace`,`๐`],[`Aviation and Aerospace Component Manufacturing`,`๐ฉ๏ธ`],[`Baked Goods Manufacturing`,`๐ฅ`],[`Banking`,`๐ฆ`],[`Bars, Taverns, and Nightclubs`,`๐ป`],[`Bed-and-Breakfasts, Hostels, Homestays`,`๐๏ธ`],[`Beverage Manufacturing`,`๐ฅค`],[`Biomass Electric Power Generation`,`๐ฑ`],[`Biotechnology`,`๐งฌ`],[`Biotechnology Research`,`๐ฌ`],[`Blockchain Services`,`โ๏ธ`],[`Boilers, Tanks, and Shipping Container Manufacturing`,`๐ข๏ธ`],[`Book and Periodical Publishing`,`๐`],[`Book Publishing`,`๐`],[`Breweries`,`๐บ`],[`Broadcast Media Production and Distribution`,`๐ก`],[`Building Construction`,`๐๏ธ`],[`Building Equipment Contractors`,`๐ง`],[`Building Finishing Contractors`,`๐ช`],[`Building Materials`,`๐งฑ`],[`Building Structure and Exterior Contractors`,`๐๏ธ`],[`Business Consulting and Services`,`๐ผ`],[`Business Content`,`๐`],[`Business Intelligence Platforms`,`๐`],[`Business Intelligence-platforms`,`๐`],[`Business Supplies & Equipment`,`๐`],[`Cable and Satellite Programming`,`๐บ`],[`Callcenters`,`โ๏ธ`],[`Capital Markets`,`๐น`],[`Caterer`,`๐ฝ๏ธ`],[`Catering`,`๐ด`],[`Chemical Manufacturing`,`๐งช`],[`Chemical Raw Materials Manufacturing`,`โ๏ธ`],[`Child Day Care Services`,`๐ถ`],[`Circuses and Magic Shows`,`๐ช`],[`Civic and Social Organizations`,`๐ค`],[`Civil Engineering`,`๐`],[`Claims Adjusting, Actuarial Services`,`๐`],[`Clay and Refractory Products Manufacturing`,`๐บ`],[`Climate Data and Analytics`,`๐ก๏ธ`],[`Climate Technology Product Manufacturing`,`๐`],[`Coal Mining`,`โ๏ธ`],[`Collection Agencies`,`๐ผ`],[`Commercial and Industrial Equipment Rental`,`๐๏ธ`],[`Commercial and Industrial Machinery Maintenance`,`๐ง`],[`Commercial and Service Industry Machinery Manufacturing`,`๐ญ`],[`Commercial Real Estate`,`๐ข`],[`Communications Equipment Manufacturing`,`๐ก`],[`Community Development and Urban Planning`,`๐๏ธ`],[`Community Services`,`๐คฒ`],[`Computer and Network Security`,`๐`],[`Computer Games`,`๐ฎ`],[`Computer Hardware`,`๐ฅ๏ธ`],[`Computer Hardware Manufacturing`,`๐ป`],[`Computer Networking`,`๐`],[`Computer Networking Products`,`๐`],[`Computerhardware`,`๐ฅ๏ธ`],[`Computers and Electronics Manufacturing`,`๐ป`],[`Conservation Programs`,`๐ณ`],[`Construction`,`๐๏ธ`],[`Construction Hardware Manufacturing`,`๐จ`],[`Consulting outsourcing en offshoring`,`๐ผ`],[`Consumer Electronics`,`๐ฑ`],[`Consumer Goods`,`๐๏ธ`],[`Consumer Goods Rental`,`๐`],[`Consumer Services`,`๐๏ธ`],[`Correctional Institutions`,`๐`],[`Cosmetics`,`๐`],[`Cosmetology and Barber Schools`,`๐`],[`Courts of Law`,`โ๏ธ`],[`Credit Intermediation`,`๐ณ`],[`Cutlery and Handtool Manufacturing`,`๐ช`],[`Dairy`,`๐ฅ`],[`Dairy Product Manufacturing`,`๐ง`],[`Dance Companies`,`๐`],[`Data Infrastructure and Analytics`,`๐`],[`Data Security Software Products`,`๐`],[`Defense & Space`,`๐ก๏ธ`],[`Defense and Space Manufacturing`,`๐`],[`Dentists`,`๐ฆท`],[`Design`,`๐จ`],[`Design Services`,`โ๏ธ`],[`Desktop Computing Software Products`,`๐ฅ๏ธ`],[`Detailhandel meubilair en interieur`,`๐๏ธ`],[`Digital Accessibility Services`,`โฟ`],[`Distilleries`,`๐ฅ`],[`E-learning`,`๐`],[`E-Learning`,`๐`],[`E-Learning Providers`,`๐ป`],[`Economic Programs`,`๐`],[`Education`,`๐`],[`Education Administration Programs`,`๐ซ`],[`Education Management`,`๐`],[`Electric Lighting Equipment Manufacturing`,`๐ก`],[`Electric Power Generation`,`โก`],[`Electric Power Transmission, Control, and Distribution`,`๐`],[`Electrical Equipment Manufacturing`,`โก`],[`Electronic and Precision Equipment Maintenance`,`๐ง`],[`Embedded Software Products`,`๐ ๏ธ`],[`Emergency and Relief Services`,`๐จ`],[`Engineering Services`,`โ๏ธ`],[`Engines and Power Transmission Equipment Manufacturing`,`โ๏ธ`],[`Enquรยชteurs dรขโฌโขassurances et services actuariels`,`๐`],[`Enregistrement sonore`,`๐๏ธ`],[`Entertainment`,`๐ญ`],[`Entertainment Providers`,`๐ฌ`],[`Environmental Quality Programs`,`๐ฟ`],[`Environmental Services`,`โป๏ธ`],[`Equipment Rental Services`,`๐๏ธ`],[`Events Services`,`๐`],[`Executive Offices`,`๐ข`],[`Executive Search Services`,`๐`],[`Fabricated Metal Products`,`๐ฉ`],[`Facilities Services`,`๐ข`],[`Family Planning Centers`,`๐จโ๐ฉโ๐ง`],[`Farming`,`๐`],[`Farming, Ranching, Forestry`,`๐พ`],[`Fashion Accessories Manufacturing`,`๐`],[`Financial Services`,`๐ฐ`],[`Fine Art`,`๐ผ๏ธ`],[`Fine Arts Schools`,`๐จ`],[`Fire Protection`,`๐`],[`Fisheries`,`๐`],[`Flight Training`,`๐ฉ๏ธ`],[`Food & Beverages`,`๐ฝ๏ธ`],[`Food and Beverage Manufacturing`,`๐ฅซ`],[`Food and Beverage Retail`,`๐`],[`Food and Beverage Services`,`๐ด`],[`Food Production`,`๐ฑ`],[`Footwear and Leather Goods Repair`,`๐`],[`Footwear Manufacturing`,`๐`],[`Forestry and Logging`,`๐ฒ`],[`Fossil Fuel Electric Power Generation`,`๐ข๏ธ`],[`Freight and Package Transportation`,`๐ฆ`],[`Fruit and Vegetable Preserves Manufacturing`,`๐ฅซ`],[`Fuel Cell Manufacturing`,`๐`],[`Fundraising`,`๐ต`],[`Funds and Trusts`,`๐ฐ`],[`Furniture`,`๐๏ธ`],[`Furniture and Home Furnishings Manufacturing`,`๐ช`],[`Gambling Facilities and Casinos`,`๐ฐ`],[`Geothermal Electric Power Generation`,`๐`],[`Glass Product Manufacturing`,`๐ช`],[`Glass, Ceramics and Concrete Manufacturing`,`๐บ`],[`Golf Courses and Country Clubs`,`โณ`],[`Government Administration`,`๐๏ธ`],[`Government Relations`,`๐๏ธ`],[`Government Relations Services`,`๐ค`],[`Graphic Design`,`๐จ`],[`Groothandel machines`,`๐ญ`],[`Ground Passenger Transportation`,`๐`],[`Health and Human Services`,`๐ฅ`],[`Health, Wellness & Fitness`,`๐ช`],[`Higher Education`,`๐`],[`Highway, Street, and Bridge Construction`,`๐ฃ๏ธ`],[`Historical Sites`,`๐๏ธ`],[`Holding Companies`,`๐ข`],[`Home Health Care Services`,`๐ `],[`Hospitality`,`๐๏ธ`],[`Hospitals`,`๐ฅ`],[`Hospitals and Health Care`,`โ๏ธ`],[`Hotels and Motels`,`๐จ`],[`Household and Institutional Furniture Manufacturing`,`๐๏ธ`],[`Household Appliance Manufacturing`,`๐งบ`],[`Household Services`,`๐ก`],[`Housing and Community Development`,`๐๏ธ`],[`Housing Programs`,`๐ `],[`Human resources`,`๐ฅ`],[`Human Resources`,`๐ฅ`],[`Human Resources Services`,`๐`],[`HVAC and Refrigeration Equipment Manufacturing`,`โ๏ธ`],[`Hydroelectric Power Generation`,`๐ง`],[`Import & Export`,`๐ข`],[`Import en export`,`๐ข`],[`Incassobureaus`,`๐ผ`],[`Individual and Family Services`,`๐จโ๐ฉโ๐งโ๐ฆ`],[`Industrial Automation`,`๐ค`],[`Industrial Machinery Manufacturing`,`๐ญ`],[`Industries extractives`,`โ๏ธ`],[`Industry Associations`,`๐๏ธ`],[`Information Services`,`๐ก`],[`Information Technology & Services`,`๐ป`],[`Insurance`,`๐ก๏ธ`],[`Insurance Agencies and Brokerages`,`๐`],[`Insurance and Employee Benefit Funds`,`๐ฆ`],[`Insurance Carriers`,`๐ก๏ธ`],[`Interior Design`,`๐๏ธ`],[`International Affairs`,`๐`],[`International Trade and Development`,`๐`],[`Internet Marketplace Platforms`,`๐`],[`Internet News`,`๐ฐ`],[`Internet Publishing`,`๐ฐ`],[`Internet-Publishing`,`๐ฐ`],[`Internetmedia`,`๐บ`],[`Interurban and Rural Bus Services`,`๐`],[`Investment Advice`,`๐`],[`Investment Banking`,`๐ฆ`],[`Investment Management`,`๐ผ`],[`IT Services and IT Consulting`,`๐ป`],[`IT System Custom Software Development`,`๐จโ๐ป`],[`IT System Data Services`,`๐พ`],[`IT System Design Services`,`๐ฅ๏ธ`],[`IT System Installation and Disposal`,`๐ง`],[`IT System Operations and Maintenance`,`๐ ๏ธ`],[`IT System Testing and Evaluation`,`๐งช`],[`IT System Training and Support`,`๐ง`],[`IT-services en consultancy`,`๐ป`],[`Janitorial Services`,`๐งน`],[`Landscaping Services`,`๐ฟ`],[`Language Schools`,`๐ฃ๏ธ`],[`Law Enforcement`,`๐ฎ`],[`Law Practice`,`โ๏ธ`],[`Legal Services`,`๐`],[`Legislative Offices`,`๐๏ธ`],[`Libraries`,`๐`],[`LKW-Transport`,`๐`],[`Loan Brokers`,`๐ณ`],[`Luxury Goods & Jewelry`,`๐`],[`Machinery Manufacturing`,`๐ญ`],[`Magnetic and Optical Media Manufacturing`,`๐ฟ`],[`Manufacturing`,`๐ญ`],[`Maritime`,`โ`],[`Maritime Transportation`,`๐ข`],[`Market Research`,`๐`],[`Marketing Services`,`๐ฃ`],[`Maroquinerie`,`๐`],[`Mattress and Blinds Manufacturing`,`๐๏ธ`],[`Measuring and Control Instrument Manufacturing`,`๐`],[`Meat Products Manufacturing`,`๐ฅฉ`],[`Mechanical Or Industrial Engineering`,`โ๏ธ`],[`Media and Telecommunications`,`๐ก`],[`Media Production`,`๐ฌ`],[`Medical and Diagnostic Laboratories`,`๐ฌ`],[`Medical Device`,`๐ฉบ`],[`Medical Equipment Manufacturing`,`๐ฉป`],[`Medical Practices`,`โ๏ธ`],[`Mental Health Care`,`๐ง `],[`Metal Ore Mining`,`โ๏ธ`],[`Metal Treatments`,`๐ฉ`],[`Metal Valve, Ball, and Roller Manufacturing`,`โ๏ธ`],[`Military and International Affairs`,`๐ช`],[`Mining`,`โ๏ธ`],[`Mobile Computing Software Products`,`๐ฑ`],[`Mobile Food Services`,`๐`],[`Mobile Gaming Apps`,`๐ฎ`],[`Motor Vehicle Manufacturing`,`๐`],[`Movies and Sound Recording`,`๐ฌ`],[`Movies, Videos, and Sound`,`๐ฅ`],[`Museums`,`๐๏ธ`],[`Museums, Historical Sites, and Zoos`,`๐ฆ`],[`Music`,`๐ต`],[`Musicians`,`๐ธ`],[`Nanotechnology Research`,`๐ฌ`],[`Natural Gas Distribution`,`๐ฅ`],[`Natural Gas Extraction`,`โฝ`],[`Newspaper Publishing`,`๐ฐ`],[`Non-profit Organization Management`,`๐`],[`Non-profit Organizations`,`๐ค`],[`Nonmetallic Mineral Mining`,`๐ชจ`],[`Nonresidential Building Construction`,`๐ข`],[`Nuclear Electric Power Generation`,`โข๏ธ`],[`Nursing Homes and Residential Care Facilities`,`๐ฅ`],[`Office Administration`,`๐๏ธ`],[`Office Furniture and Fixtures Manufacturing`,`๐ช`],[`Oil and Gas`,`๐ข๏ธ`],[`Oil Extraction`,`โฝ`],[`Oil, Gas, and Mining`,`๐ข๏ธ`],[`Online and Mail Order Retail`,`๐ฆ`],[`Online Audio and Video Media`,`๐ฅ`],[`Online media`,`๐บ`],[`Online Media`,`๐บ`],[`Operations Consulting`,`๐ผ`],[`Operations management consulting`,`๐ผ`],[`Optometrists`,`๐`],[`Outpatient Care Centers`,`๐ฅ`],[`Outsourcing and Offshoring Consulting`,`๐`],[`Outsourcing/Offshoring`,`๐`],[`Packaging & Containers`,`๐ฆ`],[`Packaging and Containers Manufacturing`,`๐ฆ`],[`Paint, Coating, and Adhesive Manufacturing`,`๐จ`],[`Paper & Forest Products`,`๐`],[`Paper and Forest Product Manufacturing`,`๐ฒ`],[`Pension Funds`,`๐ฐ`],[`Performing Arts`,`๐ญ`],[`Performing Arts and Spectator Sports`,`๐ญ`],[`Periodical Publishing`,`๐`],[`Personal and Laundry Services`,`๐งบ`],[`Personal Care Product Manufacturing`,`๐งด`],[`Personal Care Services`,`๐`],[`Pet Services`,`๐พ`],[`Pharmaceutical Manufacturing`,`๐`],[`Philanthropic Fundraising Services`,`๐`],[`Philanthropy`,`โค๏ธ`],[`Photography`,`๐ท`],[`Physical, Occupational and Speech Therapists`,`๐ฉบ`],[`Physicians`,`๐จโโ๏ธ`],[`Pipeline Transportation`,`๐ฐ`],[`Plastics and Rubber Product Manufacturing`,`โป๏ธ`],[`Plastics Manufacturing`,`๐งด`],[`Political Organizations`,`๐ณ๏ธ`],[`Postal Services`,`๐ฎ`],[`Primary and Secondary Education`,`๐ซ`],[`Primary Metal Manufacturing`,`๐ฉ`],[`Printing Services`,`๐จ๏ธ`],[`Professional Organizations`,`๐๏ธ`],[`Professional Services`,`๐ผ`],[`Professional Training and Coaching`,`๐ฏ`],[`Program Development`,`๐จโ๐ป`],[`Public Assistance Programs`,`๐ค`],[`Public Health`,`๐ฅ`],[`Public Policy`,`๐`],[`Public Policy Offices`,`๐๏ธ`],[`Public Relations and Communications Services`,`๐ฃ`],[`Public Safety`,`๐จ`],[`Racetracks`,`๐`],[`Radio and Television Broadcasting`,`๐ป`],[`Rail Transportation`,`๐`],[`Railroad Equipment Manufacturing`,`๐`],[`Ranching`,`๐ค `],[`Ranching and Fisheries`,`๐`],[`Real Estate`,`๐๏ธ`],[`Real Estate Agents and Brokers`,`๐`],[`Real Estate and Equipment Rental Services`,`๐ `],[`Recreational Facilities`,`๐๏ธ`],[`Regenerative Design`,`๐ฑ`],[`Religious Institutions`,`โช`],[`Renewable Energy Equipment Manufacturing`,`๐`],[`Renewable Energy Power Generation`,`๐ฌ๏ธ`],[`Renewable Energy Semiconductor Manufacturing`,`โ๏ธ`],[`Renewables & Environment`,`โป๏ธ`],[`Repair and Maintenance`,`๐ง`],[`Research`,`๐ฌ`],[`Research Services`,`๐งช`],[`Residential Building Construction`,`๐ `],[`Restaurants`,`๐ฝ๏ธ`],[`Restauration collective`,`๐ด`],[`Retail`,`๐๏ธ`],[`Retail Apparel and Fashion`,`๐`],[`Retail Appliances, Electrical, and Electronic Equipment`,`๐`],[`Retail Art Dealers`,`๐ผ๏ธ`],[`Retail Art Supplies`,`๐๏ธ`],[`Retail Books and Printed News`,`๐`],[`Retail Building Materials and Garden Equipment`,`๐ฑ`],[`Retail Florists`,`๐`],[`Retail Furniture and Home Furnishings`,`๐๏ธ`],[`Retail Gasoline`,`โฝ`],[`Retail Groceries`,`๐`],[`Retail Health and Personal Care Products`,`๐งด`],[`Retail Luxury Goods and Jewelry`,`๐`],[`Retail Motor Vehicles`,`๐`],[`Retail Musical Instruments`,`๐บ`],[`Retail Office Equipment`,`๐๏ธ`],[`Retail Office Supplies and Gifts`,`๐`],[`Retail Pharmacies`,`๐`],[`Retail Recyclable Materials & Used Merchandise`,`โป๏ธ`],[`Reupholstery and Furniture Repair`,`๐ช`],[`Robot Manufacturing`,`๐ค`],[`Robotics engineering`,`๐ฆพ`],[`Robotics Engineering`,`๐ฆพ`],[`Rubber Products Manufacturing`,`๐`],[`Satellite Telecommunications`,`๐ฐ๏ธ`],[`Savings Institutions`,`๐ฆ`],[`School and Employee Bus Services`,`๐`],[`Secretarial Schools`,`โจ๏ธ`],[`Securities and Commodity Exchanges`,`๐`],[`Security and Investigations`,`๐`],[`Security Guards and Patrol Services`,`๐`],[`Security Systems Services`,`๐จ`],[`Semiconductor Manufacturing`,`๐`],[`Semiconductors`,`๐พ`],[`Services for Renewable Energy`,`๐ฑ`],[`Services for the Elderly and Disabled`,`๐ด`],[`Services strategisch management`,`โ๏ธ`],[`Sheet Music Publishing`,`๐ผ`],[`Shipbuilding`,`๐ข`],[`Shuttles and Special Needs Transportation Services`,`๐`],[`Sightseeing Transportation`,`๐`],[`Skiing Facilities`,`๐ฟ`],[`Smart Meter Manufacturing`,`๐`],[`Soap and Cleaning Product Manufacturing`,`๐งผ`],[`Social Networking Platforms`,`๐ฌ`],[`Software Development`,`๐ป`],[`Solar Electric Power Generation`,`โ๏ธ`],[`Sound Recording`,`๐๏ธ`],[`Space Research and Technology`,`๐`],[`Specialty Trade Contractors`,`๐จ`],[`Spectator Sports`,`๐๏ธ`],[`Sporting Goods`,`๐`],[`Sporting Goods Manufacturing`,`โฝ`],[`Sports and Recreation Instruction`,`๐๏ธ`],[`Sports Teams and Clubs`,`๐`],[`Spring and Wire Product Manufacturing`,`๐`],[`Staffing and Recruiting`,`๐งโ๐ผ`],[`Steam and Air-Conditioning Supply`,`โจ๏ธ`],[`Strategic Management Services`,`โ๏ธ`],[`Subdivision of Land`,`๐บ๏ธ`],[`Sugar and Confectionery Product Manufacturing`,`๐ฌ`],[`Surveying and Mapping Services`,`๐บ๏ธ`],[`Taxi and Limousine Services`,`๐`],[`Technical and Vocational Training`,`๐ ๏ธ`],[`Technology, Information and Internet`,`๐`],[`Technology, Information and Media`,`๐ป`],[`Telecommunications`,`๐`],[`Telecommunications Carriers`,`๐ก`],[`Telephone Call Centers`,`โ๏ธ`],[`Temporary Help Services`,`โณ`],[`Textile Manufacturing`,`๐งต`],[`Theater Companies`,`๐ญ`],[`Think tanks`,`๐ก`],[`Think Tanks`,`๐ก`],[`Tobacco`,`๐ฌ`],[`Tobacco Manufacturing`,`๐ฌ`],[`Translation and Localization`,`๐`],[`Transport aรยฉrien`,`โ๏ธ`],[`Transport maritime`,`๐ข`],[`Transportation Equipment Manufacturing`,`๐`],[`Transportation Programs`,`๐`],[`Transportation, Logistics, Supply Chain and Storage`,`๐ฆ`],[`Transportation/Trucking/Railroad`,`๐`],[`Travel Arrangements`,`๐งณ`],[`Truck Transportation`,`๐`],[`Trusts and Estates`,`๐`],[`Turned Products and Fastener Manufacturing`,`๐ฉ`],[`Urban Transit Services`,`๐`],[`Utilities`,`๐ก`],[`Utilities Administration`,`๐`],[`Utility System Construction`,`๐๏ธ`],[`Vehicle Repair and Maintenance`,`๐ง`],[`Venture Capital and Private Equity Principals`,`๐ธ`],[`Veterinary`,`๐`],[`Veterinary Services`,`๐`],[`Vocational Rehabilitation Services`,`โฟ`],[`Warehousing`,`๐ฌ`],[`Warehousing and Storage`,`๐ฆ`],[`Waste Collection`,`๐๏ธ`],[`Waste Treatment and Disposal`,`โป๏ธ`],[`Water Supply and Irrigation Systems`,`๐ง`],[`Water, Waste, Steam, and Air Conditioning Services`,`๐ง`],[`Wellness and Fitness Services`,`๐ง`],[`Wholesale`,`๐ฆ`],[`Wholesale Alcoholic Beverages`,`๐ท`],[`Wholesale Apparel and Sewing Supplies`,`๐งต`],[`Wholesale Appliances, Electrical, and Electronics`,`๐`],[`Wholesale Building Materials`,`๐งฑ`],[`Wholesale Chemical and Allied Products`,`๐งช`],[`Wholesale Computer Equipment`,`๐ป`],[`Wholesale Drugs and Sundries`,`๐`],[`Wholesale Food and Beverage`,`๐ฑ`],[`Wholesale Footwear`,`๐`],[`Wholesale Furniture and Home Furnishings`,`๐๏ธ`],[`Wholesale Hardware, Plumbing, Heating Equipment`,`๐ง`],[`Wholesale Import and Export`,`๐ข`],[`Wholesale Luxury Goods and Jewelry`,`๐`],[`Wholesale Machinery`,`๐ญ`],[`Wholesale Metals and Minerals`,`๐ฉ`],[`Wholesale Motor Vehicles and Parts`,`๐`],[`Wholesale Paper Products`,`๐`],[`Wholesale Petroleum and Petroleum Products`,`โฝ`],[`Wholesale Photography Equipment and Supplies`,`๐ท`],[`Wholesale Raw Farm Products`,`๐ฝ`],[`Wholesale Recyclable Materials`,`โป๏ธ`],[`Wind Electric Power Generation`,`๐ฌ๏ธ`],[`Wine & Spirits`,`๐ท`],[`Wineries`,`๐`],[`Wireless Services`,`๐ถ`],[`Women's Handbag Manufacturing`,`๐`],[`Wood Product Manufacturing`,`๐ชต`],[`Writing and Editing`,`โ๏ธ`],[`Zoos and Botanical Gardens`,`๐ฆ`]]),Ge=(e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})))([[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1,000`,`๐๏ธ`],[`1,001-5,000`,`๐๏ธ`],[`5,001-10,000`,`๐`],[`10,001+`,`๐`]]),Ke=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),qe=Ke([[`AF`,`Afghanistan`,`๐ฆ๐ซ`],[`AL`,`Albania`,`๐ฆ๐ฑ`],[`DZ`,`Algeria`,`๐ฉ๐ฟ`],[`AD`,`Andorra`,`๐ฆ๐ฉ`],[`AO`,`Angola`,`๐ฆ๐ด`],[`AG`,`Antigua and Barbuda`,`๐ฆ๐ฌ`],[`AR`,`Argentina`,`๐ฆ๐ท`],[`AM`,`Armenia`,`๐ฆ๐ฒ`],[`AU`,`Australia`,`๐ฆ๐บ`],[`AT`,`Austria`,`๐ฆ๐น`],[`AZ`,`Azerbaijan`,`๐ฆ๐ฟ`],[`BS`,`Bahamas`,`๐ง๐ธ`],[`BH`,`Bahrain`,`๐ง๐ญ`],[`BD`,`Bangladesh`,`๐ง๐ฉ`],[`BB`,`Barbados`,`๐ง๐ง`],[`BY`,`Belarus`,`๐ง๐พ`],[`BE`,`Belgium`,`๐ง๐ช`],[`BZ`,`Belize`,`๐ง๐ฟ`],[`BJ`,`Benin`,`๐ง๐ฏ`],[`BT`,`Bhutan`,`๐ง๐น`],[`BO`,`Bolivia`,`๐ง๐ด`],[`BA`,`Bosnia and Herzegovina`,`๐ง๐ฆ`],[`BW`,`Botswana`,`๐ง๐ผ`],[`BR`,`Brazil`,`๐ง๐ท`],[`BN`,`Brunei`,`๐ง๐ณ`],[`BG`,`Bulgaria`,`๐ง๐ฌ`],[`BF`,`Burkina Faso`,`๐ง๐ซ`],[`BI`,`Burundi`,`๐ง๐ฎ`],[`CV`,`Cabo Verde`,`๐จ๐ป`],[`KH`,`Cambodia`,`๐ฐ๐ญ`],[`CM`,`Cameroon`,`๐จ๐ฒ`],[`CA`,`Canada`,`๐จ๐ฆ`],[`CF`,`Central African Republic`,`๐จ๐ซ`],[`TD`,`Chad`,`๐น๐ฉ`],[`CL`,`Chile`,`๐จ๐ฑ`],[`CN`,`China`,`๐จ๐ณ`],[`CO`,`Colombia`,`๐จ๐ด`],[`KM`,`Comoros`,`๐ฐ๐ฒ`],[`CG`,`Congo`,`๐จ๐ฌ`],[`CD`,`Congo (Democratic Republic)`,`๐จ๐ฉ`],[`CR`,`Costa Rica`,`๐จ๐ท`],[`CI`,`Cรดte d'Ivoire`,`๐จ๐ฎ`],[`HR`,`Croatia`,`๐ญ๐ท`],[`CU`,`Cuba`,`๐จ๐บ`],[`CY`,`Cyprus`,`๐จ๐พ`],[`CZ`,`Czech Republic`,`๐จ๐ฟ`],[`DK`,`Denmark`,`๐ฉ๐ฐ`],[`DJ`,`Djibouti`,`๐ฉ๐ฏ`],[`DM`,`Dominica`,`๐ฉ๐ฒ`],[`DO`,`Dominican Republic`,`๐ฉ๐ด`],[`EC`,`Ecuador`,`๐ช๐จ`],[`EG`,`Egypt`,`๐ช๐ฌ`],[`SV`,`El Salvador`,`๐ธ๐ป`],[`GQ`,`Equatorial Guinea`,`๐ฌ๐ถ`],[`ER`,`Eritrea`,`๐ช๐ท`],[`EE`,`Estonia`,`๐ช๐ช`],[`SZ`,`Eswatini`,`๐ธ๐ฟ`],[`ET`,`Ethiopia`,`๐ช๐น`],[`FJ`,`Fiji`,`๐ซ๐ฏ`],[`FI`,`Finland`,`๐ซ๐ฎ`],[`FR`,`France`,`๐ซ๐ท`],[`GA`,`Gabon`,`๐ฌ๐ฆ`],[`GM`,`Gambia`,`๐ฌ๐ฒ`],[`GE`,`Georgia`,`๐ฌ๐ช`],[`DE`,`Germany`,`๐ฉ๐ช`],[`GH`,`Ghana`,`๐ฌ๐ญ`],[`GR`,`Greece`,`๐ฌ๐ท`],[`GD`,`Grenada`,`๐ฌ๐ฉ`],[`GT`,`Guatemala`,`๐ฌ๐น`],[`GN`,`Guinea`,`๐ฌ๐ณ`],[`GW`,`Guinea-Bissau`,`๐ฌ๐ผ`],[`GY`,`Guyana`,`๐ฌ๐พ`],[`HT`,`Haiti`,`๐ญ๐น`],[`HN`,`Honduras`,`๐ญ๐ณ`],[`HK`,`Hong Kong`,`๐ญ๐ฐ`],[`HU`,`Hungary`,`๐ญ๐บ`],[`IS`,`Iceland`,`๐ฎ๐ธ`],[`IN`,`India`,`๐ฎ๐ณ`],[`ID`,`Indonesia`,`๐ฎ๐ฉ`],[`IR`,`Iran`,`๐ฎ๐ท`],[`IQ`,`Iraq`,`๐ฎ๐ถ`],[`IE`,`Ireland`,`๐ฎ๐ช`],[`IL`,`Israel`,`๐ฎ๐ฑ`],[`IT`,`Italy`,`๐ฎ๐น`],[`JM`,`Jamaica`,`๐ฏ๐ฒ`],[`JP`,`Japan`,`๐ฏ๐ต`],[`JO`,`Jordan`,`๐ฏ๐ด`],[`KZ`,`Kazakhstan`,`๐ฐ๐ฟ`],[`KE`,`Kenya`,`๐ฐ๐ช`],[`KI`,`Kiribati`,`๐ฐ๐ฎ`],[`KW`,`Kuwait`,`๐ฐ๐ผ`],[`KG`,`Kyrgyzstan`,`๐ฐ๐ฌ`],[`LA`,`Laos`,`๐ฑ๐ฆ`],[`LV`,`Latvia`,`๐ฑ๐ป`],[`LB`,`Lebanon`,`๐ฑ๐ง`],[`LS`,`Lesotho`,`๐ฑ๐ธ`],[`LR`,`Liberia`,`๐ฑ๐ท`],[`LY`,`Libya`,`๐ฑ๐พ`],[`LI`,`Liechtenstein`,`๐ฑ๐ฎ`],[`LT`,`Lithuania`,`๐ฑ๐น`],[`LU`,`Luxembourg`,`๐ฑ๐บ`],[`MO`,`Macao`,`๐ฒ๐ด`],[`MG`,`Madagascar`,`๐ฒ๐ฌ`],[`MW`,`Malawi`,`๐ฒ๐ผ`],[`MY`,`Malaysia`,`๐ฒ๐พ`],[`MV`,`Maldives`,`๐ฒ๐ป`],[`ML`,`Mali`,`๐ฒ๐ฑ`],[`MT`,`Malta`,`๐ฒ๐น`],[`MH`,`Marshall Islands`,`๐ฒ๐ญ`],[`MR`,`Mauritania`,`๐ฒ๐ท`],[`MU`,`Mauritius`,`๐ฒ๐บ`],[`MX`,`Mexico`,`๐ฒ๐ฝ`],[`FM`,`Micronesia`,`๐ซ๐ฒ`],[`MD`,`Moldova`,`๐ฒ๐ฉ`],[`MC`,`Monaco`,`๐ฒ๐จ`],[`MN`,`Mongolia`,`๐ฒ๐ณ`],[`ME`,`Montenegro`,`๐ฒ๐ช`],[`MA`,`Morocco`,`๐ฒ๐ฆ`],[`MZ`,`Mozambique`,`๐ฒ๐ฟ`],[`MM`,`Myanmar`,`๐ฒ๐ฒ`],[`NA`,`Namibia`,`๐ณ๐ฆ`],[`NR`,`Nauru`,`๐ณ๐ท`],[`NP`,`Nepal`,`๐ณ๐ต`],[`NL`,`Netherlands`,`๐ณ๐ฑ`],[`NZ`,`New Zealand`,`๐ณ๐ฟ`],[`NI`,`Nicaragua`,`๐ณ๐ฎ`],[`NE`,`Niger`,`๐ณ๐ช`],[`NG`,`Nigeria`,`๐ณ๐ฌ`],[`KP`,`North Korea`,`๐ฐ๐ต`],[`MK`,`North Macedonia`,`๐ฒ๐ฐ`],[`NO`,`Norway`,`๐ณ๐ด`],[`OM`,`Oman`,`๐ด๐ฒ`],[`PK`,`Pakistan`,`๐ต๐ฐ`],[`PW`,`Palau`,`๐ต๐ผ`],[`PS`,`Palestine`,`๐ต๐ธ`],[`PA`,`Panama`,`๐ต๐ฆ`],[`PG`,`Papua New Guinea`,`๐ต๐ฌ`],[`PY`,`Paraguay`,`๐ต๐พ`],[`PE`,`Peru`,`๐ต๐ช`],[`PH`,`Philippines`,`๐ต๐ญ`],[`PL`,`Poland`,`๐ต๐ฑ`],[`PT`,`Portugal`,`๐ต๐น`],[`PR`,`Puerto Rico`,`๐ต๐ท`],[`QA`,`Qatar`,`๐ถ๐ฆ`],[`RO`,`Romania`,`๐ท๐ด`],[`RU`,`Russia`,`๐ท๐บ`],[`RW`,`Rwanda`,`๐ท๐ผ`],[`KN`,`Saint Kitts and Nevis`,`๐ฐ๐ณ`],[`LC`,`Saint Lucia`,`๐ฑ๐จ`],[`VC`,`Saint Vincent and the Grenadines`,`๐ป๐จ`],[`WS`,`Samoa`,`๐ผ๐ธ`],[`SM`,`San Marino`,`๐ธ๐ฒ`],[`ST`,`Sรฃo Tomรฉ and Prรญncipe`,`๐ธ๐น`],[`SA`,`Saudi Arabia`,`๐ธ๐ฆ`],[`SN`,`Senegal`,`๐ธ๐ณ`],[`RS`,`Serbia`,`๐ท๐ธ`],[`SC`,`Seychelles`,`๐ธ๐จ`],[`SL`,`Sierra Leone`,`๐ธ๐ฑ`],[`SG`,`Singapore`,`๐ธ๐ฌ`],[`SK`,`Slovakia`,`๐ธ๐ฐ`],[`SI`,`Slovenia`,`๐ธ๐ฎ`],[`SB`,`Solomon Islands`,`๐ธ๐ง`],[`SO`,`Somalia`,`๐ธ๐ด`],[`ZA`,`South Africa`,`๐ฟ๐ฆ`],[`KR`,`South Korea`,`๐ฐ๐ท`],[`SS`,`South Sudan`,`๐ธ๐ธ`],[`ES`,`Spain`,`๐ช๐ธ`],[`LK`,`Sri Lanka`,`๐ฑ๐ฐ`],[`SD`,`Sudan`,`๐ธ๐ฉ`],[`SR`,`Suriname`,`๐ธ๐ท`],[`SE`,`Sweden`,`๐ธ๐ช`],[`CH`,`Switzerland`,`๐จ๐ญ`],[`SY`,`Syria`,`๐ธ๐พ`],[`TW`,`Taiwan`,`๐น๐ผ`],[`TJ`,`Tajikistan`,`๐น๐ฏ`],[`TZ`,`Tanzania`,`๐น๐ฟ`],[`TH`,`Thailand`,`๐น๐ญ`],[`TL`,`Timor-Leste`,`๐น๐ฑ`],[`TG`,`Togo`,`๐น๐ฌ`],[`TO`,`Tonga`,`๐น๐ด`],[`TT`,`Trinidad and Tobago`,`๐น๐น`],[`TN`,`Tunisia`,`๐น๐ณ`],[`TR`,`Turkey`,`๐น๐ท`],[`TM`,`Turkmenistan`,`๐น๐ฒ`],[`TV`,`Tuvalu`,`๐น๐ป`],[`UG`,`Uganda`,`๐บ๐ฌ`],[`UA`,`Ukraine`,`๐บ๐ฆ`],[`AE`,`United Arab Emirates`,`๐ฆ๐ช`],[`GB`,`United Kingdom`,`๐ฌ๐ง`],[`US`,`United States`,`๐บ๐ธ`],[`UY`,`Uruguay`,`๐บ๐พ`],[`UZ`,`Uzbekistan`,`๐บ๐ฟ`],[`VU`,`Vanuatu`,`๐ป๐บ`],[`VA`,`Vatican City`,`๐ป๐ฆ`],[`VE`,`Venezuela`,`๐ป๐ช`],[`VN`,`Vietnam`,`๐ป๐ณ`],[`YE`,`Yemen`,`๐พ๐ช`],[`ZM`,`Zambia`,`๐ฟ๐ฒ`],[`ZW`,`Zimbabwe`,`๐ฟ๐ผ`]]),Je=Ke([[`en`,`English`,`๐ฌ๐ง`],[`de`,`German`,`๐ฉ๐ช`],[`es`,`Spanish`,`๐ช๐ธ`],[`fr`,`French`,`๐ซ๐ท`],[`pt`,`Portuguese`,`๐ต๐น`],[`it`,`Italian`,`๐ฎ๐น`],[`nl`,`Dutch`,`๐ณ๐ฑ`],[`ja`,`Japanese`,`๐ฏ๐ต`],[`ko`,`Korean`,`๐ฐ๐ท`],[`zh`,`Chinese`,`๐จ๐ณ`],[`ar`,`Arabic`,`๐ธ๐ฆ`],[`hi`,`Hindi`,`๐ฎ๐ณ`],[`id`,`Indonesian`,`๐ฎ๐ฉ`],[`tr`,`Turkish`,`๐น๐ท`],[`ru`,`Russian`,`๐ท๐บ`],[`uk`,`Ukrainian`,`๐บ๐ฆ`],[`pl`,`Polish`,`๐ต๐ฑ`],[`cs`,`Czech`,`๐จ๐ฟ`],[`sk`,`Slovak`,`๐ธ๐ฐ`],[`sl`,`Slovenian`,`๐ธ๐ฎ`],[`hr`,`Croatian`,`๐ญ๐ท`],[`sr`,`Serbian`,`๐ท๐ธ`],[`bg`,`Bulgarian`,`๐ง๐ฌ`],[`ro`,`Romanian`,`๐ท๐ด`],[`hu`,`Hungarian`,`๐ญ๐บ`],[`el`,`Greek`,`๐ฌ๐ท`],[`sv`,`Swedish`,`๐ธ๐ช`],[`no`,`Norwegian`,`๐ณ๐ด`],[`da`,`Danish`,`๐ฉ๐ฐ`],[`fi`,`Finnish`,`๐ซ๐ฎ`],[`is`,`Icelandic`,`๐ฎ๐ธ`],[`et`,`Estonian`,`๐ช๐ช`],[`lv`,`Latvian`,`๐ฑ๐ป`],[`lt`,`Lithuanian`,`๐ฑ๐น`],[`ca`,`Catalan`,`๐ช๐ธ`],[`eu`,`Basque`,`๐ช๐ธ`],[`cy`,`Welsh`,`๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ`],[`he`,`Hebrew`,`๐ฎ๐ฑ`],[`fa`,`Persian`,`๐ฎ๐ท`],[`ur`,`Urdu`,`๐ต๐ฐ`],[`ps`,`Pashto`,`๐ฆ๐ซ`],[`bn`,`Bengali`,`๐ง๐ฉ`],[`pa`,`Punjabi`,`๐ฎ๐ณ`],[`gu`,`Gujarati`,`๐ฎ๐ณ`],[`mr`,`Marathi`,`๐ฎ๐ณ`],[`kn`,`Kannada`,`๐ฎ๐ณ`],[`ml`,`Malayalam`,`๐ฎ๐ณ`],[`ta`,`Tamil`,`๐ฎ๐ณ`],[`te`,`Telugu`,`๐ฎ๐ณ`],[`or`,`Odia`,`๐ฎ๐ณ`],[`sd`,`Sindhi`,`๐ต๐ฐ`],[`ne`,`Nepali`,`๐ณ๐ต`],[`si`,`Sinhala`,`๐ฑ๐ฐ`],[`my`,`Burmese`,`๐ฒ๐ฒ`],[`th`,`Thai`,`๐น๐ญ`],[`lo`,`Lao`,`๐ฑ๐ฆ`],[`km`,`Khmer`,`๐ฐ๐ญ`],[`vi`,`Vietnamese`,`๐ป๐ณ`],[`tl`,`Tagalog`,`๐ต๐ญ`],[`ka`,`Georgian`,`๐ฌ๐ช`],[`hy`,`Armenian`,`๐ฆ๐ฒ`],[`am`,`Amharic`,`๐ช๐น`],[`bo`,`Tibetan`,`๐๏ธ`],[`dv`,`Divehi`,`๐ฒ๐ป`],[`ht`,`Haitian Creole`,`๐ญ๐น`],[`und`,`Undetermined`,`๐`]]),Ye={"location.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/regions.csv`,filter:`ranked`,columns:{value:0,weight:1,widgets:2}},"company.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/company_names.csv`,filter:`contains`,columns:{value:0,weight:1}},"company.domains":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/company_domains.csv`,filter:`contains`,columns:{value:0,weight:1}},"school.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/schools.csv`,filter:`ranked`,columns:{value:0,weight:1}},"location.countries":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/countries.csv`,filter:`contains`,columns:{value:0,label:0,widgets:1}},"person.job_titles":{type:`csv`,filter:`ranked`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/titles.csv`,columns:{value:0,label:0,weight:1,widgets:2}},"company.categories.crunchbase":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crunchbase/categories.csv`,filter:`contains`},"company.investors.crunchbase":{type:`csv`,filter:`contains`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crunchbase/investors.csv`},"company.investors.tracxn":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/tracxn/investors.csv`,filter:`contains`},"company.industries.linkedin":{type:`csv`,filter:`contains`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/linkedin_industries.csv`,columns:{label:0,value:0,widgets:1}},"person.employment_function.crustdata":{type:`static`,filter:`contains`,values:eee},"company.stock_exchanges.crustdata_legacy":{type:`provider`,provider:`crustdata`,resolve:ne(`companydb`,`markets`)},"company.categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`taxonomy.categories`})},"company.specialties.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`taxonomy.professional_network_specialities`})},"company.technologies.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`technology`})},"company.linkedin_categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`companydb`,`linkedin_categories`)},"job.titles.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`jobdb`,field:`job_details.title`})},"job.categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`jobdb`,field:`job_details.category`})},"person.skills":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/skills.csv`,filter:`contains`},"person.skills.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`skills.professional_network_skills`})},"person.certifications.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`certifications.name`})},"person.honors.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`honors.title`})},"person.current_employer_names.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`current_employers.name`)},"person.past_employer_names.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`past_employers.name`)},"person.field_of_study":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/field_of_study.csv`,filter:`ranked`},"person.degree.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`education_background.degree_name`)},"person.education_activities.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`education_background.activities_and_societies`)},"company.types.amplemarket":{type:`static`,filter:`contains`,values:ce},"company.headcount.amplemarket":{type:`static`,filter:`contains`,values:le},"person.seniority.amplemarket":{type:`static`,filter:`contains`,values:ue},"person.departments.amplemarket":{type:`static`,filter:`contains`,values:de},"company.revenue.amplemarket":{type:`static`,filter:`contains`,values:fe},"person.job_functions.amplemarket":{type:`static`,filter:`contains`,values:_e},"company.industries.amplemarket":{type:`static`,filter:`contains`,values:ve},"company.last_funding_round.amplemarket":{type:`static`,filter:`contains`,values:ge},"company.customer_type.amplemarket":{type:`static`,filter:`contains`,values:pe},"person.linkedin_presence.amplemarket":{type:`static`,filter:`contains`,values:me},"company.linkedin_presence.amplemarket":{type:`static`,filter:`contains`,values:he},"company.headcount":{type:`static`,filter:`contains`,values:Ge},"company.followers.crustdata":{type:`static`,filter:`contains`,values:Ce},"company.linkedin_headcount.crustdata":{type:`static`,filter:`contains`,values:Se},"company.funding_rounds.crustdata":{type:`static`,filter:`contains`,values:we},"person.employer_headcount.crustdata":{type:`static`,filter:`contains`,values:Te},"person.languages.crustdata":{type:`static`,filter:`contains`,values:Ee},"post.languages.x":{type:`static`,filter:`contains`,values:Je},"post.countries.x":{type:`static`,filter:`contains`,values:qe},"feed.urls":{type:`static`,filter:`contains`,values:Ue},"company.change_types.crustdata":{type:`static`,filter:`contains`,values:De},"person.profile_change.crustdata":{type:`static`,filter:`contains`,values:Oe},"person.seniority.crustdata":{type:`static`,filter:`contains`,values:ke},"person.year_brackets":{type:`static`,filter:`contains`,values:Ae},"person.job_functions.crustdata":{type:`static`,filter:`contains`,values:Ne},"company.types.crustdata_legacy":{type:`static`,filter:`contains`,values:Pe},"company.growth_brackets":{type:`static`,filter:`contains`,values:Fe},"company.last_funding_round.crustdata":{type:`static`,filter:`contains`,values:Ie},"post.date_posted.crustdata":{type:`static`,filter:`contains`,values:je},"post.content_type.crustdata":{type:`static`,filter:`contains`,values:Me},"location.country_codes":{type:`static`,filter:`contains`,values:He},"company.stock_exchanges.crustdata":{type:`static`,filter:`contains`,values:Be},"company.types.crustdata":{type:`static`,filter:`contains`,values:ze},"company.function_headcount.crustdata":{type:`static`,filter:`contains`,values:Ve},"job.workplace_type":{type:`static`,filter:`contains`,values:tee},"company.industries.linkedin_full":{type:`static`,filter:`contains`,values:We}};r.enum(Object.keys(Ye)),new Set(Object.keys(Ye));function nee(e,t){let n=Ye[e];if(!n)throw Error(`Autocomplete: Source for key: ${e} is not defined`);let r=typeof t?.widgets==`function`?t.widgets:void 0,i=typeof t?.widgets==`function`?void 0:t?.widgets;return{options:async({query:n,limit:i,token:a})=>{let o=await fetch(`https://autocomplete.pipe0.com/v1/complete`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},body:JSON.stringify({source:e,query:n,limit:t?.limit??i??20})});if(!o.ok)throw Error(`Autocomplete failed`);let s=(await o.json()).results;return r?s.map(e=>{let t=r(e);return{...e,widgets:{...t,...e.widgets??{}}}}):s},type:n.type,sourceKey:e,file:`url`in n?n.url:void 0,widgets:i}}function h(e){let t=Ye[e];if(!t)throw Error(`Autocomplete: source "${e}" is not defined`);if(t.type!==`static`)throw Error(`Autocomplete: source "${e}" is not static (type=${t.type}); use autocomplete() instead`);return t.values.map(e=>({value:e.value,label:e.label,widgets:e.widgets}))}function Xe(e){return{type:`static`,sourceKey:e,options:h(e)}}function g(e,t){return nee(e,t)}const Ze=[`claim`,`counter`,`event_counter`],Qe=1,$e=r.enum([`string`,`number`,`boolean`]),et=r.object({type:$e,format:r.string().default(``)}),tt=r.object({type:r.literal(`fields`),input_fields:r.record(r.string(),et)}),nt=r.object({ttl_seconds:r.number().int().positive().nullable().default(null),on_own_entry:r.enum([`proceed`,`block`]).default(`block`),on_missing:r.enum([`block`,`proceed`]).default(`proceed`)}),rt=r.object({start:r.number().int().default(1),step:r.number().int().positive().default(1)}),it=r.object({});function at(e,t){if(t!==1)throw Error(`Unsupported bucket type version: ${e}@${t}`);switch(e){case`claim`:return nt;case`counter`:return rt;case`event_counter`:return it;default:throw Error(`Unknown bucket type: ${String(e)}`)}}function ot(e){switch(e){case`claim`:return nt.parse({});case`counter`:return rt.parse({});case`event_counter`:return it.parse({});default:throw Error(`Unknown bucket type: ${String(e)}`)}}function st(e,t){if(!t)return{};let n={};return e===`claim`?(t.new_bucket_ttl_in_seconds!=null&&(n.ttl_seconds=t.new_bucket_ttl_in_seconds),t.new_bucket_own_entry_behavior&&(n.on_own_entry=t.new_bucket_own_entry_behavior),t.new_bucket_missing_value_behavior&&(n.on_missing=t.new_bucket_missing_value_behavior)):e===`counter`&&(t.new_bucket_start!=null&&(n.start=t.new_bucket_start),t.new_bucket_step!=null&&(n.step=t.new_bucket_step)),n}function ct(e){return e?.new_bucket_name?.trim()||null}function lt(e){return{column:e.field_name,bucketField:e.entry_field?.trim()||e.field_name}}function ut(e){return e.map(e=>lt(e).bucketField)}function dt(e){return Array.isArray(e)?e[0]??``:e}function ft(e){return Object.keys(e.input_fields).sort()}function pt(e,t){let n=ft(e),r=ft(t);if(n.length!==r.length)return!1;for(let i=0;i<n.length;i+=1){let a=n[i];if(a===void 0||a!==r[i])return!1;let o=e.input_fields[a],s=t.input_fields[a];if(!o||!s||o.type!==s.type)return!1}return!0}function mt(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function ht(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);return new TextDecoder().decode(r)}function gt(e){return mt(JSON.stringify(e))}function _t(e){let t=ht(e);return tt.parse(JSON.parse(t))}function vt(e){if(!e)return null;try{return _t(e)}catch{return null}}var yt=class extends Error{constructor(e){super(`Field '${e}' not found`),this.fieldName=e,this.name=`ConditionFieldNotFoundError`}},bt=class extends Error{constructor(e,t,n){super(e),this.fieldName=t,this.operator=n,this.name=`ConditionEvaluationError`}};function xt(e){if(!e)return null;if(e instanceof Date)return e;if(typeof e==`string`){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e==`number`){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function St(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?null:t}return null}function Ct(e,t){let n=e.value,{field_name:r,operator:i}=t,a=t.value;if(e.type===`json`)throw new bt(`Value conditions on json fields are not supported โ use a STATUS condition (property: "status"), or extract the nested property into its own flat field.`,r,i);if(n==null)switch(i){case`eq`:return{isCheckTrue:a==null};case`neq`:return{isCheckTrue:a!=null};default:return{isCheckTrue:!1}}if(i===`older_than_days`||i===`within_last_days`){let e=xt(n),t=St(a);if(!e)throw new bt(`Field '${r}' value '${n}' cannot be parsed as a date for ${i} comparison`,r,i);if(t===null)throw new bt(`Comparison value '${a}' must be a number of days for field '${r}'`,r,i);let o=Date.now()-e.getTime(),s=t*864e5;return{isCheckTrue:i===`older_than_days`?o>s:o<=s}}if(i===`matches`){let e;try{e=new RegExp(String(a))}catch{throw new bt(`Comparison value '${a}' is not a valid regular expression for field '${r}'`,r,i)}return{isCheckTrue:e.test(String(n))}}if(e.format===`date`||e.format===`datetime`){let e=xt(n),t=xt(a);if(!e)throw new bt(`Field '${r}' has date format but value '${n}' cannot be parsed as a date`,r,i);if(!t)throw new bt(`Comparison value '${a}' cannot be parsed as a date for field '${r}'`,r,i);let o=e.getTime(),s=t.getTime();switch(i){case`gt`:return{isCheckTrue:o>s};case`gte`:return{isCheckTrue:o>=s};case`lt`:return{isCheckTrue:o<s};case`lte`:return{isCheckTrue:o<=s};case`eq`:return{isCheckTrue:o===s};case`neq`:return{isCheckTrue:o!==s};default:throw new bt(`Operator '${i}' is not supported for date fields`,r,i)}}if((e.type===`number`||typeof n==`number`)&&[`gt`,`gte`,`lt`,`lte`].includes(i)){let e=St(n),t=St(a);if(e===null)throw new bt(`Field '${r}' value '${n}' cannot be parsed as a number for ${i} comparison`,r,i);if(t===null)throw new bt(`Comparison value '${a}' cannot be parsed as a number for field '${r}'`,r,i);switch(i){case`gt`:return{isCheckTrue:e>t};case`gte`:return{isCheckTrue:e>=t};case`lt`:return{isCheckTrue:e<t};case`lte`:return{isCheckTrue:e<=t}}}let o=a;switch(e.type===`boolean`&&typeof a==`string`&&(o=a.toLowerCase()===`true`),i){case`eq`:return{isCheckTrue:n===o};case`neq`:return{isCheckTrue:n!==o};case`contains`:return{isCheckTrue:String(n).toLowerCase().includes(String(o).toLocaleLowerCase())};default:throw new bt(`Operator '${i}' is not supported for field '${r}' with type '${e.type}'`,r,i)}}function wt(e,t){let{field_name:n,operator:r}=t,i=t.value,a=e.status;switch(r){case`eq`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a===i};case`neq`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a!==i};case`contains`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a.includes(i)};default:throw new bt(`Operator '${r}' is not supported for status comparison on field '${n}'`,n,r)}}function Tt(e,t){let{field_name:n,property:r}=t,i=e[n];if(!i)throw new yt(n);switch(r){case`status`:return wt(i,t).isCheckTrue;case`value`:return Ct(i,t).isCheckTrue;default:throw new bt(`Unknown property '${r}' for field '${n}'`,n,`unknown`)}}function Et(e,t){let{logic:n,conditions:r}=t;if(r.length===0)return!0;let i=r.map(t=>Tt(e,t));if(n===`and`)return i.every(e=>e===!0);if(n===`or`)return i.some(e=>e===!0);throw Error(`Unknown logic operator: ${n}`)}const Dt=[`report:update@1`,`report:generate@1`,`report:deliver:email@1`,`report:post:x@1`],Ot=r.enum(Dt),kt=`rows:dedupe@1.rows:duplicate@1.rows:enrich@1.rows:adopt@1.rows:add@1.rows:import@1.row:update@1.rows:remove@1.rows:removeempty@1.rows:copy_to_sheet@1.rows:filter:prompt@1.pipe:add@1.pipe:update@1.pipe:remove@1.fields:remove@1.fields:patch@1.fields:duplicate@1.fields:add@1.fields:order:reset@1.fields:values:reset@1.fields:deletesparse:input@1.env:change@1.timetravel:create@1.timetravel:travel@1.sheet:export@1.search:run@1.stream:subscribe@1.stream:unsubscribe@1.sheet:reset@1`.split(`.`),At=r.enum(kt),jt=r.object({type:r.literal(`rows`),record_ids:r.array(r.string())}),Mt=r.object({type:r.literal(`all`)}),Nt=r.object({type:r.literal(`window`),count:r.number().int().min(1).nullable().describe("Up to N rows โ claims fewer if fewer have work. `null` = no upper bound: every actionable row from the cursor to the end of the sheet."),cursor:r.string().optional().describe(`Opaque resume cursor returned by a prior window response. Omitted โ start at the first actionable row. Rarely set โ for schedules the work set itself is the implicit, auto-advancing cursor.`)}).describe('The next `count` rows the effect still has work for, in row order. Attempted rows leave the work set, so successive runs auto-advance with no stored offset โ on a schedule this drips through a finite list N rows per fire ("the next 2 leads every day") until it is exhausted.'),Pt=r.discriminatedUnion(`type`,[jt,Mt,Nt]);function Ft(e){let t=!1,n=!1;for(let r of e??[]){let e=typeof r?.effect_id==`string`?r.effect_id:``;if(kt.includes(e))t=!0;else if(Dt.includes(e))n=!0;else return`unknown`}return t&&n?`mixed`:n?`report`:t?`sheet`:`unknown`}function It(){return`https://i.pravatar.cc/300?u=${crypto.randomUUID()}`}function Lt(e,{isNullEmpty:t}={isNullEmpty:!1}){if(e===null)return!!t;if(e==null||typeof e==`string`&&e.trim()===``||Array.isArray(e)&&e.length===0)return!0;if(typeof e==`object`){for(let n in e)if(Object.hasOwn(e,n)&&!Lt(e[n],{isNullEmpty:t}))return!1;return!0}return!1}function Rt(e){return e.split(`@`)[0]}function zt(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(zt).filter(e=>!Lt(e));let t={};for(let[n,r]of Object.entries(e)){let e=zt(r);Lt(e)||(t[n]=e)}return t}const Bt=await i();var Vt=class e{static hashObject(t){if(!Bt)throw Error(`HashAPI not initialized`);let{h64ToString:n}=Bt,r=e.normalizeObject(t);return n(JSON.stringify(r))}static normalizeObject(t){if(typeof t!=`object`||!t)return t;if(Array.isArray(t))return t.map(t=>e.normalizeObject(t));let n={},r=Object.keys(t).sort();for(let i of r)n[i]=e.normalizeObject(t[i]);return n}};function Ht(e){return e.split(`@`)[0]}function Ut(e,t){let n={effectId:e,config:zt(t)};return Vt.hashObject(n)}var Wt=class{validatePayload(e){try{return this.schema.parse(e)}catch(e){throw e instanceof n?Error(JSON.stringify(r.prettifyError(e))):e}}getSecretRequirements(){return[]}getConstantRequirements(){return[]}getConfigHashKey(){return Ut(this.payload.effect_id,this.payload.config||{})}};const Gt=t.enum([`processing`,`completed`,`failed`,`canceled`,`skipped`]).openapi(`EffectsRunStatus`);function Kt(e,t){if(!e)return t;let n={...e};for(let[e,r]of Object.entries(t))n[e]===void 0?n[e]=r:n[e]!==null&&typeof n[e]==`object`&&!Array.isArray(n[e])&&typeof r==`object`&&r&&!Array.isArray(r)&&(n[e]=Kt(n[e],r));return n}const qt={linkedin:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1ba16ca7-513b-4a25-2bc2-5548acdd2000/icon`};function Jt(e,t=32){return`https://www.google.com/s2/favicons?sz=${t}&domain=${e.replace(/^(https?:\/\/)?(www\.)?/,``)}`}function ree(e,t){return e==null?void 0:t(e)}function iee(){return Yt({companyWebsiteUrl:`linkedin.com`,entity:`LinkedIn`})}function Yt({companyWebsiteUrl:e,entity:t}){if(e)return{image_url:Jt(e),entity:t||e}}function Xt(e,t){let n=JSON.parse(JSON.stringify({...e}));if(!t)return n;for(let e in t)!(e in n)&&t[e]!=null&&(n[e]=t[e]);return n}function Zt(e){let t={};for(let n in e){let r=e[n];r!=null&&(t[n]={...r,type:`static`})}return t}function Qt(e){let t={};if(!e)return t;for(let n in e){let r=e[n];r!=null&&r.type!==`static`&&(t[n]=r)}return t}const $t={pipe0:{name:`pipe0`,label:`pipe0`,description:`A framework for lead and company data enrichment.`,url:`https://pipe0.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/52f2d955-d9f3-4139-2c13-63cfd568ed00/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},findymail:{name:`findymail`,label:`FindyMail`,description:`Find verified emails.`,url:`https://findymail.com`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,oAuthConfig:null,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/9e8ce38d-a49d-42a3-4317-506f7fbec900/icon`,background:{light:`#EAF8F1`,dark:`#1F372B`}},hunter:{name:`hunter`,label:`HunterMail`,description:`Find email addresses and send cold emails`,url:`https://hunter.io`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,oAuthConfig:null,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/a612ed1c-d5cf-421a-23c5-3cf74f506100/icon`,background:{light:`#F8F0EA`,dark:`#37291F`}},zerobounce:{name:`zerobounce`,label:`ZeroBounce`,description:`Email validation tools and email list cleaning`,url:`https://www.zerobounce.net`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/db8e9e41-0bda-4f2c-de42-cf8ce61ee500/icon`,background:{light:`#EAEEF8`,dark:`#1F2637`},oAuthConfig:null},googlemaps:{name:`googlemaps`,label:`Google Maps`,description:`A map service by Google`,url:`https://www.google.com/maps`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1796d3c1-dfb0-4555-b2bf-0ca4930e8f00/icon`,background:{light:`#EAEFF8`,dark:`#1F2937`},oAuthConfig:null},leadmagic:{name:`leadmagic`,label:`LeadMagic`,description:`Enrichment provider`,url:`https://leadmagic.io`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/508cb23a-47d4-40ee-1645-b5a8bf994c00/icon`,background:{light:`#F1EAF8`,dark:`#2B1F37`},oAuthConfig:null},builtwith:{name:`builtwith`,label:`BuiltWith`,description:`BuiltWith tracks over 2500 eCommerce technologies across over 26 million eCommerce websites.`,url:`https://builtwith.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/e675cb72-6dc2-43c8-972e-0fc9c3b73c00/icon`,background:{light:`#EAF8F0`,dark:`#1F3729`},oAuthConfig:null},perplexity:{name:`perplexity`,label:`Perplexity`,description:`AI search company`,public:!1,url:`https://perplexity.com`,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d17d3ba0-5c9e-43d8-17ee-3e4a70404e00/icon`,background:{light:`#EAF8F8`,dark:`#1F3637`},oAuthConfig:null},hackernews:{name:`hackernews`,label:`Hacker News`,description:`Public Hacker News firehose โ stories and comments, read for keyword mentions.`,url:`https://news.ycombinator.com/`,public:!0,hasManagedConnections:!1,allowsUserConnections:!1,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/bdbb786f-7d38-46b3-b05a-44f88d904200/icon`,background:{light:`#FFF3EC`,dark:`#2A1B12`},oAuthConfig:null},calcom:{name:`calcom`,label:`Cal.com`,description:`Open-source scheduling โ bookings, cancellations and reschedules.`,url:`https://cal.com/`,public:!1,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://cal.com/favicon.ico`,background:{light:`#F1F1F1`,dark:`#1C1C1C`},oAuthConfig:null},serper:{name:`serper`,label:`Serper`,description:`The World's Fastest & Cheapest Google Search API`,url:`https://serper.dev/`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/04e720cd-56ea-44d3-3a31-cfc516c6f800/icon`,background:{light:`#EAEFF8`,dark:`#1F2737`},oAuthConfig:null},icypeas:{name:`icypeas`,label:`Icypeas`,description:`A popular data catalog`,url:`https://www.icypeas.com/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d635119e-08ae-40cb-78bc-34161d422400/icon`,background:{light:`#EAF8F3`,dark:`#1F372F`},oAuthConfig:null},prospeo:{name:`prospeo`,label:`Prospeo`,description:`Find anyoneโs contact data.`,url:`https://prospeo.io/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/95032a9f-932b-4898-ff0d-45d49390d100/icon`,background:{light:`#EAECF8`,dark:`#1F2337`},oAuthConfig:null},surfe:{name:`surfe`,label:`Surfe`,description:`Contact data enrichment.`,url:`https://surfe.com/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/ce7158f0-61c3-49d4-df10-dbd4e0fce900/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},wiza:{name:`wiza`,label:`Wiza`,description:`B2B contact data enrichment.`,url:`https://wiza.co/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/145b4fe2-1a51-4c3b-3931-11202e0efb00/icon`,background:{light:`#EDF3FF`,dark:`#141B2B`},oAuthConfig:null},gemini:{name:`gemini`,label:`Gemini`,description:`Google's AI service`,url:`https://gemini.google.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/417de5dd-a8a8-4210-d7dc-6f40e54ece00/icon`,background:{light:`#EBEAF8`,dark:`#211F37`},oAuthConfig:null},anthropic:{name:`anthropic`,label:`Anthropic`,description:`Anthropic's Claude AI models`,url:`https://www.anthropic.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8f2b7ff3-12a6-4c55-31fd-460b9f461300/icon`,background:{light:`#F0EEE6`,dark:`#2B2A26`},oAuthConfig:null},slack:{name:`slack`,label:`Slack`,description:`A modern business chat application.`,url:`https://slack.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/676e823c-c926-4b0b-465c-121b9d1c3300/icon`,background:{light:`#F5EAF8`,dark:`#311F37`},oAuthConfig:{}},companyenrich:{name:`companyenrich`,label:`CompanyEnrich`,description:`A company enrichment service.`,url:`https://companyenrich.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/e80b3a16-7b36-4733-bcbe-46f471d33100/icon`,background:{light:`#EAF1F8`,dark:`#1F2B37`},oAuthConfig:{}},mixrank:{name:`mixrank`,label:`MixRank`,description:`Ultra-high-frequency technographic and people data for your data teams.`,url:`https://mixrank.com/`,hasManagedConnections:!0,allowsUserConnections:!1,connectionType:`api_key`,oAuthConfig:{},public:!0,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/a29f3095-b3f9-4b12-d21b-1c506ccd7200/icon`,background:{light:`#F8EAEB`,dark:`#371F21`}},clado:{name:`clado`,label:`Clado`,description:`A data provider deploying 10^5 AI agents to find contact information.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,url:`https://clado.ai`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/fdf3d2d0-70be-45c3-2fe5-a8c5cac55a00/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},gmail:{name:`gmail`,label:`Gmail`,description:`Google's email service`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://mail.google.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8da8ab6b-7f7e-4c42-6abf-212ea537db00/icon`,background:{light:`#F8EBEA`,dark:`#37211F`},oAuthConfig:{}},googlecalendar:{name:`googlecalendar`,label:`Google Calendar`,description:`Google's calendar and scheduling service`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://calendar.google.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/9cfc8918-2046-47dd-52f9-353ce76fd800/icon`,background:{light:`#EAEFF8`,dark:`#1F2937`},oAuthConfig:{}},hubspot:{name:`hubspot`,label:`HubSpot`,description:`CRM platform for marketing, sales, and customer service.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://www.hubspot.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/bfe1c515-490d-4f12-f4a8-21aee8cc3000/icon`,background:{light:`#F8EDEA`,dark:`#37251F`},oAuthConfig:{}},salesforce:{name:`salesforce`,label:`Salesforce`,description:`The world's most widely used CRM platform.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://www.salesforce.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/91141a7c-dfb6-4e01-413e-ceed70e3c600/icon`,background:{light:`#EAF4F8`,dark:`#1F3037`},oAuthConfig:{}},resend:{name:`resend`,label:`Resend`,description:`An email platform built for developers.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,url:`https://clado.ai`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7c88f71b-8472-40f4-4bec-0e77eac30400/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},firecrawl:{name:`firecrawl`,label:`Firecrawl`,description:`Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown. Firecrawl crawls all accessible subpages and gives you clean markdown for each. No sitemap required.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.firecrawl.dev`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/5c318569-7bf4-4276-a3f2-1f25530f7f00/icon`,background:{light:`#F8F0EA`,dark:`#372B1F`},oAuthConfig:null},exa:{name:`exa`,label:`Exa`,description:`Exa is a search engine built for AI.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://exa.ai/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8ae69780-4506-4952-a90e-02e70b06af00/icon`,background:{light:`#EAECF8`,dark:`#1F2237`},oAuthConfig:null},openai:{name:`openai`,label:`OpenAI`,description:`Foundational AI company based out of San Francisco.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://openai.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7ac79c3a-bccb-4ed4-d6e5-7b300b2fd300/icon`,background:{light:`#EAF8F5`,dark:`#1F3731`},oAuthConfig:null},millionverifier:{name:`millionverifier`,label:`MillionVerifier`,description:`E-Mail validation service.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.millionverifier.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7a8bd9cb-efeb-492e-3f4c-311c9492b800/icon`,background:{light:`#EAF8ED`,dark:`#1F3725`},oAuthConfig:null},logodev:{name:`logodev`,label:`Logo.dev`,description:`Every company logo, one simple API.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.logo.dev/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1defa51b-5c01-4034-1030-60f68aa46400/icon`,background:{light:`#F5F3EC`,dark:`#2E2A1F`},oAuthConfig:null},crustdata:{name:`crustdata`,label:`Crustdata`,description:`Real-time company & people data`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://crustdata.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/fa05be24-d174-40f0-69c2-4fdb43c6be00/icon`,background:{light:`#F8EFEA`,dark:`#37281F`},oAuthConfig:null},amplemarket:{name:`amplemarket`,label:`Amplemarket`,description:`Sales data platform`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.amplemarket.com`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/adecf16b-4187-409b-d77f-16fc07fc6100/icon`,background:{light:`#EAEDF8`,dark:`#1F2537`},oAuthConfig:null},parallel:{name:`parallel`,label:`Parallel`,description:`Agentic web search & research APIs purpose-built for AI agents.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://parallel.ai`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/13d4ae54-9400-4577-8fbf-c96021fb0000/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},luma:{name:`luma`,label:`Luma`,description:`Delightful events, calendars, and ticketing for communities.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,url:`https://lu.ma`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/ed6cf16b-e69e-4f90-7718-85e4600fff00/icon`,background:{light:`#F2EAF8`,dark:`#2D1F37`},oAuthConfig:null},postgres:{name:`postgres`,label:`PostgreSQL`,description:`Connect your own PostgreSQL database and query it read-only.`,url:`https://www.postgresql.org`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`connection_string`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/eb8b2802-8280-45c3-ee08-a24aad6a0a00/icon`,background:{light:`#EAF2F8`,dark:`#1F2D37`},oAuthConfig:null},databricks:{name:`databricks`,label:`Databricks`,description:`Query your Databricks SQL warehouse read-only via a service principal.`,url:`https://www.databricks.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`databricks`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/07b73e49-e1fa-445b-865e-2b7dc2641700/icon`,background:{light:`#F8ECEA`,dark:`#37221F`},oAuthConfig:null},lemlist:{name:`lemlist`,label:`lemlist`,description:`Sales engagement & cold outreach platform.`,url:`https://lemlist.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/5d2b25c5-86a7-4eea-9416-fcca77cc7000/icon`,background:{light:`#EAEEF8`,dark:`#1F2637`},oAuthConfig:null},attio:{name:`attio`,label:`Attio`,description:`The CRM with a fully customizable data model.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://attio.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d0d047c7-3871-4a7e-5031-be52ebc34900/icon`,background:{light:`#EAEBF8`,dark:`#1F2137`},oAuthConfig:{}},x:{name:`x`,label:`X (Twitter)`,description:`Search, publish, and monitor posts from your own X account.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://x.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/6b8f8056-f702-453c-d158-30e63a6d6000/icon`,background:{light:`#EFEFEF`,dark:`#1A1A1A`},oAuthConfig:{}}};function en(e){let t=$t[e];if(!t)throw Error(`Provider name '${e}' invalid`);return{...t,provider:e}}const tn=[`linkedin`,`google`,`meta`],nn=[`image`,`carousel`,`video`,`text`,`event`,`document`,`thought_leader`,`spotlight`,`follower`,`message`,`conversation`,`connected_tv`,`dpa`,`dco`,`multi_images`,`other`],rn=r.object({ad_platform:r.literal(`linkedin`),ad_url:r.url(),ad_id:r.string(),advertiser_name:r.string().nullable(),advertiser_id:r.string().nullable(),advertiser_profile_url:r.string().nullable(),ad_format:r.enum(nn),ad_headline:r.string().nullable(),ad_body_text:r.string().nullable(),ad_cta:r.string().nullable(),landing_page_url:r.string().nullable(),ad_image_urls:r.array(r.string()),ad_video_urls:r.array(r.string()),impression_range:r.string().nullable(),first_shown_at:r.string().nullable(),last_shown_at:r.string().nullable()}),an={ad_platform:`linkedin`,ad_url:`https://www.linkedin.com/ad-library/detail/1478337423`,ad_id:`1478337423`,advertiser_name:`HubSpot`,advertiser_id:`68529`,advertiser_profile_url:`https://www.linkedin.com/company/68529`,ad_format:`image`,ad_headline:`Get The Free Brand Consistency Guide From HubSpot & Canva`,ad_body_text:`Brand consistency drives revenue growth for 68% of organizations. Get the free guide.`,ad_cta:`learn_more`,landing_page_url:`https://offers.hubspot.com/how-to-build-a-brand-canva`,ad_image_urls:[`https://media.licdn.com/dms/image/v2/D4D10AQHeILHUGtZ8-A/image-shrink_1280/brand-guide.jpg`],ad_video_urls:[],impression_range:`1k-5k`,first_shown_at:`2026-08-13T00:00:00.000Z`,last_shown_at:`2026-08-16T00:00:00.000Z`},on=r.array(rn),sn=[an],cn=r.object({id:r.string(),object:r.literal(`company`),name:r.string().nullable(),website:r.url().nullable(),linkedin_url:r.url().nullable(),keywords:r.array(r.string()).nullable(),estimated_number_of_employees:r.number().nullable(),size:r.string().nullable(),industry:r.string().nullable(),logo_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),postal_code:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),locations:r.array(r.object({is_primary:r.boolean(),address:r.string().nullable(),country:r.string().nullable(),state:r.string().nullable(),city:r.string().nullable(),postal_code:r.string().nullable()})).nullable(),overview:r.string().nullable(),followers:r.number().nullable(),linkedin_presence:r.string().nullable(),founded_year:r.number().nullable(),traffic_rank:r.number().nullable(),sic_codes:r.array(r.number()).nullable(),naics_codes:r.array(r.number()).nullable(),type:r.string().nullable(),total_funding:r.number().nullable(),latest_funding_stage:r.string().nullable(),latest_funding_date:r.string().nullable(),funding_events:r.array(r.object({date:r.string().nullable(),type:r.string().nullable(),investors:r.array(r.string()),amount:r.number().nullable(),currency:r.string().nullable(),amount_usd:r.number().nullable()})).nullable(),is_b2b:r.boolean().nullable(),is_b2c:r.boolean().nullable(),technologies:r.array(r.string()).nullable(),department_headcount:r.record(r.string(),r.number()),job_function_headcount:r.record(r.string(),r.record(r.string(),r.number())),estimated_revenue:r.string().nullable()}),ln={id:`019b4aec-0d35-7c3d-8f91-fda409a136ed`,object:`company`,name:`A Company`,website:`https://company.com`,linkedin_url:`https://www.linkedin.com/company/company-1`,keywords:[`sales`,`ai sales`,`sales engagement`],estimated_number_of_employees:500,size:`201-500 employees`,industry:`Software Development`,logo_url:`https://assets.amplemarket.com/avatars/company/019b4aec-0d35-7c3d-8f91-fda409a136ed`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,postal_code:`94103`,lat:37.7749,long:-122.4194},locations:[{is_primary:!0,address:`123 Main St, San Francisco, CA 94103, United States`,country:`United States`,state:`California`,city:`San Francisco`,postal_code:`94103`},{is_primary:!1,address:`456 Broadway, New York, NY 10001, United States`,country:`United States`,state:`New York`,city:`New York`,postal_code:`10001`}],overview:`We're an AI company.`,followers:300,linkedin_presence:`large`,founded_year:1995,traffic_rank:50,sic_codes:[1,2,3],naics_codes:[5112,511,51],type:`Privately Held`,total_funding:0,latest_funding_stage:`series_b`,latest_funding_date:`2019-11-02`,funding_events:[{date:`2019-11-02`,type:`Series B`,investors:[`An Investor`,`A Venture Fund`],amount:4e7,currency:`USD`,amount_usd:4e7}],is_b2b:!0,is_b2c:!1,technologies:[],department_headcount:{consulting:31420,design:5312,education:9063,engineering_technical:167805,finance:31894,human_resources:33265,information_technology:94657,legal:41863,marketing:38192,medical_health:11440,operations:198127,product:11077,revenue:75777,senior_leadership:1933},job_function_headcount:{finance:{accounting:12824,finance:12197,financial_planning_analysis:2468,financial_reporting:250,financial_risk:886,financial_strategy:91,financial_systems:11,internal_audit_control:850,investor_relations:129,mergers_acquisitions:259,real_estate_finance:117,shared_services:56,sourcing_procurement:3767,tax:822,treasury:179},legal:{acquisitions:8,compliance:4921,contracts:206,corporate_secretary:217,ediscovery:57,ethics:1070,governance:66,governmental_affairs_regulatory_law:518,intellectual_property_patent:63,labor_employment:96,lawyer_attorney:2014,legal:31969,legal_counsel:879,legal_operations:3777,litigation:89,privacy:198},revenue:{account_management:16253,business_development:10633,channel_sales:618,customer_retention_development:1746,customer_success:15253,field_outside_sales:5375,inside_sales:3475,partnerships:380,revenue_operations:26,sales:43809,sales_enablement:26,sales_engineering:135,sales_operations:254,sales_training:465},engineering_technical:{artificial_intelligence_machine_learning:4466,bioengineering_biometrics:2,business_intelligence:6811,chemical_engineering:3014,cloud_mobility:1144,data_science:9589,devops:502,digital_transformation:13,emerging_technology_innovation:576,engineering_technical:37540,industrial_engineering:1242,mechanic:1037,mobile_development:3282,project_management:4923,research_development:10123,scrum_master_agile_coach:173,software_development:57246,support_technical_services:8328,technician:7999,technology_operations:64,test_quality_assurance:6722,ui_ux:458,web_development:2551},operations:{call_center:2095,construction:2338,corporate_strategy:1194,customer_service_support:21434,enterprise_resource_planning:389,facilities_management:18036,leasing:33,logistics:75145,office_operations:32304,operations:27241,physical_security:3280,project_development:695,quality_management:1801,real_estate:961,safety:2794,store_operations:26641,supply_chain:2728},senior_leadership:{executive:348,finance_executive:71,founder:1128,human_resources_executive:3,information_technology_executive:35,legal_executive:2,marketing_executive:314,medical_health_executive:3,operations_executive:32,sales_executive:2},medical_health:{anesthesiology:33,chiropractics:64,clinical_systems:91,dentistry:480,dermatology:6,doctors_physicians:1214,epidemiology:1,first_responder:504,medical_administration:767,medical_education_training:19,medical_research:92,medicine:1202,neurology:1,nursing:2053,nutrition_dietetics:94,obstetrics_gynecology:50,oncology:3,ophthalmology:11,optometry:46,orthopedics:14,pathology:15,pediatrics:20,pharmacy:873,physical_therapy:342,psychiatry:383,psychology:663,public_health:803,radiology:215,social_work:2495},information_technology:{application_development:37630,business_service_management_itsm:1710,collaboration_web_app:281,data_center:597,data_warehouse:2090,database_administration:309,ecommerce_development:285,enterprise_architecture:784,help_desk_desktop_services:4164,hr_financial_erp_systems:807,information_security:1742,information_technology:9139,infrastructure:2254,it_asset_management:100,it_audit_it_compliance:50,it_operations:6941,it_procurement:866,it_strategy:439,it_training:51,networking:1528,project_program_management:15780,quality_assurance:8126,retail_store_systems:1042,servers:984,storage_disaster_recovery:111,telecommunications:186,virtualization:915},education:{principal:458,professor:694,superintendent:28,teacher:7885},marketing:{advertising:3032,brand_management:2504,content_marketing:2641,customer_experience:812,customer_marketing:8,demand_generation:507,digital_marketing:1640,ecommerce_marketing:1121,event_marketing:125,field_marketing:740,lead_generation:2937,marketing:18980,marketing_analytics_insights:716,marketing_communications:496,marketing_operations:71,product_marketing:1319,public_relations:972,search_engine_optimization_pay_per_click:974,social_media_marketing:1411,strategic_communications:709,technical_marketing:5},consulting:{consultant:31420},human_resources:{compensation_benefits:908,culture_diversity_inclusion:182,employee_labor_relations:1147,health_safety:1087,hr_business_partner:3332,human_resource_information_system:1321,human_resources:13884,learning_development:7386,organizational_development:154,people_operations:10,recruiting_talent_acquisition:5764,talent_management:911,workforce_management:571},design:{graphic_visual_brand_design:3707,product_or_ui_ux_design:2364},product:{product_development:266,product_management:10811}},estimated_revenue:`$1M-$10M`},un=r.object({id:r.string(),object:r.literal(`person`),name:r.string(),first_name:r.string(),last_name:r.string(),linkedin_url:r.url().nullable().optional(),title:r.string().nullable(),headline:r.string().nullable(),about:r.string().nullable(),current_position_start_date:r.string().nullable(),current_position_description:r.string().nullable(),image_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),experiences:r.array(r.object({object:r.literal(`experience`),title:r.string().nullable(),company_name:r.string().nullable(),company_linkedin_url:r.url().nullable(),start_date:r.string().nullable(),end_date:r.string().nullable()})),educations:r.array(r.object({object:r.literal(`education`),degree:r.string().nullable(),field_of_study:r.string().nullable(),school_name:r.string().nullable(),school_linkedin_url:r.url().nullable(),start_date:r.string().nullable(),end_date:r.string().nullable()})),languages:r.array(r.object({object:r.literal(`language`),language:r.string(),iso_code:r.string(),proficiency:r.string().nullable()})),company:r.object({id:r.string(),object:r.literal(`company`),name:r.string(),website:r.url().nullable(),linkedin_url:r.url().nullable(),keywords:r.array(r.string()),estimated_number_of_employees:r.number().nullable(),size:r.string().nullable(),industry:r.string().nullable(),logo_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),postal_code:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),locations:r.array(r.unknown()),overview:r.string().nullable(),followers:r.number().nullable(),founded_year:r.number().nullable(),traffic_rank:r.number().nullable(),sic_codes:r.array(r.number()),naics_codes:r.array(r.number()),type:r.string().nullable(),total_funding:r.number().nullable(),latest_funding_stage:r.string().nullable(),latest_funding_date:r.string().nullable(),is_b2b:r.boolean().nullable(),is_b2c:r.boolean().nullable(),technologies:r.array(r.unknown()),department_headcount:r.record(r.string(),r.number()),job_function_headcount:r.record(r.string(),r.record(r.string(),r.number())),estimated_revenue:r.string().nullable()}).nullable(),gender:r.string().nullable()}),dn={id:`019a79fa-0858-7e5d-996e-d1b18d4d5a4f`,object:`person`,name:`Jonh Doe`,first_name:`Jonh`,last_name:`Doe`,linkedin_url:`https://www.linkedin.com/in/person-1`,title:`Founder and CEO`,headline:`CEO @ Company`,about:null,current_position_start_date:`2022-05-01`,current_position_description:null,image_url:`http://haag.example/gary`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,lat:37.7749,long:-122.4194},experiences:[{object:`experience`,title:`CEO`,company_name:`A Company`,company_linkedin_url:`https://www.linkedin.com/company/company-1`,start_date:`2023-11-01`,end_date:null}],educations:[{object:`education`,degree:`BSc`,field_of_study:`Computer Science`,school_name:`MIT`,school_linkedin_url:`https://www.linkedin.com/school/mit`,start_date:`2019-11-01`,end_date:`2023-11-01`}],languages:[{object:`language`,language:`Portuguese`,iso_code:`por`,proficiency:`Native or bilingual proficiency`},{object:`language`,language:`English`,iso_code:`eng`,proficiency:`Professional working proficiency`},{object:`language`,language:`Spanish`,iso_code:`spa`,proficiency:null}],company:{id:`019a79fa-07e3-7d74-b11f-374bf213e9ad`,object:`company`,name:`A Company`,website:`https://company.com`,linkedin_url:`https://www.linkedin.com/company/company-1`,keywords:[`sales`,`ai sales`,`sales engagement`],estimated_number_of_employees:500,size:`201-500 employees`,industry:`Software Development`,logo_url:`https://assets.amplemarket.com/avatars/company/019a79fa-07e3-7d74-b11f-374bf213e9ad`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,postal_code:`94103`,lat:37.7749,long:-122.4194},locations:[],overview:`Circle Health is a group of hospitals in the UK`,followers:0,founded_year:1995,traffic_rank:50,sic_codes:[1,2,3],naics_codes:[5112,511,51],type:`Privately Held`,total_funding:4e7,latest_funding_stage:`series_b`,latest_funding_date:`2019-11-02`,is_b2b:!0,is_b2c:!1,technologies:[],department_headcount:{consulting:31420,design:5312,education:9063,engineering_technical:167805,finance:31894,human_resources:33265,information_technology:94657,legal:41863,marketing:38192,medical_health:11440,operations:198127,product:11077,revenue:75777,senior_leadership:1933},job_function_headcount:{finance:{accounting:12824,finance:12197,financial_planning_analysis:2468,financial_reporting:250,financial_risk:886,financial_strategy:91,financial_systems:11,internal_audit_control:850,investor_relations:129,mergers_acquisitions:259,real_estate_finance:117,shared_services:56,sourcing_procurement:3767,tax:822,treasury:179},legal:{acquisitions:8,compliance:4921,contracts:206,corporate_secretary:217,ediscovery:57,ethics:1070,governance:66,governmental_affairs_regulatory_law:518,intellectual_property_patent:63,labor_employment:96,lawyer_attorney:2014,legal:31969,legal_counsel:879,legal_operations:3777,litigation:89,privacy:198},revenue:{account_management:16253,business_development:10633,channel_sales:618,customer_retention_development:1746,customer_success:15253,field_outside_sales:5375,inside_sales:3475,partnerships:380,revenue_operations:26,sales:43809,sales_enablement:26,sales_engineering:135,sales_operations:254,sales_training:465},engineering_technical:{artificial_intelligence_machine_learning:4466,bioengineering_biometrics:2,business_intelligence:6811,chemical_engineering:3014,cloud_mobility:1144,data_science:9589,devops:502,digital_transformation:13,emerging_technology_innovation:576,engineering_technical:37540,industrial_engineering:1242,mechanic:1037,mobile_development:3282,project_management:4923,research_development:10123,scrum_master_agile_coach:173,software_development:57246,support_technical_services:8328,technician:7999,technology_operations:64,test_quality_assurance:6722,ui_ux:458,web_development:2551},operations:{call_center:2095,construction:2338,corporate_strategy:1194,customer_service_support:21434,enterprise_resource_planning:389,facilities_management:18036,leasing:33,logistics:75145,office_operations:32304,operations:27241,physical_security:3280,project_development:695,quality_management:1801,real_estate:961,safety:2794,store_operations:26641,supply_chain:2728},senior_leadership:{executive:348,finance_executive:71,founder:1128,human_resources_executive:3,information_technology_executive:35,legal_executive:2,marketing_executive:314,medical_health_executive:3,operations_executive:32,sales_executive:2},medical_health:{anesthesiology:33,chiropractics:64,clinical_systems:91,dentistry:480,dermatology:6,doctors_physicians:1214,epidemiology:1,first_responder:504,medical_administration:767,medical_education_training:19,medical_research:92,medicine:1202,neurology:1,nursing:2053,nutrition_dietetics:94,obstetrics_gynecology:50,oncology:3,ophthalmology:11,optometry:46,orthopedics:14,pathology:15,pediatrics:20,pharmacy:873,physical_therapy:342,psychiatry:383,psychology:663,public_health:803,radiology:215,social_work:2495},information_technology:{application_development:37630,business_service_management_itsm:1710,collaboration_web_app:281,data_center:597,data_warehouse:2090,database_administration:309,ecommerce_development:285,enterprise_architecture:784,help_desk_desktop_services:4164,hr_financial_erp_systems:807,information_security:1742,information_technology:9139,infrastructure:2254,it_asset_management:100,it_audit_it_compliance:50,it_operations:6941,it_procurement:866,it_strategy:439,it_training:51,networking:1528,project_program_management:15780,quality_assurance:8126,retail_store_systems:1042,servers:984,storage_disaster_recovery:111,telecommunications:186,virtualization:915},education:{principal:458,professor:694,superintendent:28,teacher:7885},marketing:{advertising:3032,brand_management:2504,content_marketing:2641,customer_experience:812,customer_marketing:8,demand_generation:507,digital_marketing:1640,ecommerce_marketing:1121,event_marketing:125,field_marketing:740,lead_generation:2937,marketing:18980,marketing_analytics_insights:716,marketing_communications:496,marketing_operations:71,product_marketing:1319,public_relations:972,search_engine_optimization_pay_per_click:974,social_media_marketing:1411,strategic_communications:709,technical_marketing:5},consulting:{consultant:31420},human_resources:{compensation_benefits:908,culture_diversity_inclusion:182,employee_labor_relations:1147,health_safety:1087,hr_business_partner:3332,human_resource_information_system:1321,human_resources:13884,learning_development:7386,organizational_development:154,people_operations:10,recruiting_talent_acquisition:5764,talent_management:911,workforce_management:571},design:{graphic_visual_brand_design:3707,product_or_ui_ux_design:2364},product:{product_development:266,product_management:10811}},estimated_revenue:`$1M-$10M`},gender:`male`},fn=r.object({id:r.string(),type:r.enum([`note`,`meeting`,`task`]),title:r.string().nullable(),content:r.string().nullable(),occurred_at:r.string().nullable(),url:r.string().nullable(),actor:r.string().nullable(),is_completed:r.boolean().nullable(),deadline_at:r.string().nullable(),meeting_id:r.string().nullable(),custom_properties:r.record(r.string(),r.union([r.string(),r.number(),r.boolean()]).nullable())}),pn=r.array(fn),mn=[{id:`0b2b8d8a-1f2e-4c8a-9a1f-1a2b3c4d5e6f`,type:`meeting`,title:`Discovery call`,content:`Walked through the data-enrichment use case; strong interest in the API tier.`,occurred_at:`2026-06-30T16:00:00.000Z`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,actor:`Sam Rivera`,is_completed:null,deadline_at:null,meeting_id:`0b2b8d8a-1f2e-4c8a-9a1f-1a2b3c4d5e6f`,custom_properties:{}},{id:`7f31c9a2-9d3c-4a11-b0e2-e2f7bb2af102`,type:`note`,title:`Pricing follow-up`,content:`Wants a written quote for 50 seats before end of quarter.`,occurred_at:`2026-06-18T14:03:00.000Z`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,actor:`Sam Rivera`,is_completed:null,deadline_at:null,meeting_id:null,custom_properties:{}},{id:`42d2f9b1-3a67-4a4e-8f2f-cf6f4b0a2d11`,type:`task`,title:null,content:`Send the quote to Jane.`,occurred_at:`2026-07-10T09:00:00.000Z`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,actor:`Sam Rivera`,is_completed:!1,deadline_at:`2026-07-10T09:00:00.000Z`,meeting_id:null,custom_properties:{}}],hn=[{slug:`name`,kind:`string`},{slug:`email_addresses`,kind:`string`},{slug:`job_title`,kind:`string`},{slug:`description`,kind:`string`},{slug:`company`,kind:`string`},{slug:`phone_numbers`,kind:`string`},{slug:`linkedin`,kind:`string`},{slug:`twitter`,kind:`string`},{slug:`instagram`,kind:`string`},{slug:`primary_location`,kind:`string`},{slug:`last_interaction`,kind:`string`},{slug:`next_interaction`,kind:`string`},{slug:`created_at`,kind:`string`}],gn=[{slug:`name`,kind:`string`},{slug:`domains`,kind:`string`},{slug:`description`,kind:`string`},{slug:`categories`,kind:`string`},{slug:`team`,kind:`string`},{slug:`primary_location`,kind:`string`},{slug:`linkedin`,kind:`string`},{slug:`twitter`,kind:`string`},{slug:`angellist`,kind:`string`},{slug:`last_interaction`,kind:`string`},{slug:`next_interaction`,kind:`string`},{slug:`created_at`,kind:`string`}],_n=[{slug:`name`,kind:`string`},{slug:`stage`,kind:`string`},{slug:`value`,kind:`number`},{slug:`owner`,kind:`string`},{slug:`associated_company`,kind:`string`},{slug:`associated_people`,kind:`string`},{slug:`created_at`,kind:`string`}],vn={people:hn,companies:gn,deals:_n};function yn(e,t){let n=new Set;for(let t of e)n.add(t.slug);for(let e of t)n.add(e.trim());return n.delete(``),[...n]}const bn=e=>{switch(e){case`number`:return r.number().nullable();case`boolean`:return r.boolean().nullable();default:return r.string().nullable()}},xn=e=>Object.fromEntries(e.map(e=>[e.slug,bn(e.kind)])),Sn=()=>r.record(r.string(),r.union([r.string(),r.number(),r.boolean()]).nullable()),Cn=r.object({id:r.string(),url:r.string().nullable(),matched_by:r.literal(`email_address`).optional(),...xn(hn),custom_properties:Sn()}),wn={id:`bf071e1f-6035-429d-b874-d83ea64ea13b`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,matched_by:`email_address`,name:`Jane Doe`,email_addresses:`jane@acme.com`,job_title:`Head of Data`,description:null,company:`Acme Inc.`,phone_numbers:`+49 30 1234567`,linkedin:`https://linkedin.com/in/janedoe`,twitter:null,instagram:null,primary_location:`Berlin, Germany`,last_interaction:`2026-06-18T14:03:00.000Z ยท email`,next_interaction:`2026-07-10T09:00:00.000Z ยท calendar`,created_at:`2025-11-02T09:12:44.107Z`,custom_properties:{csm_tier:`enterprise`}},Tn=r.object({id:r.string(),url:r.string().nullable(),matched_on:r.enum([`domain`,`root_domain`]).optional(),...xn(gn),custom_properties:Sn()}),En={id:`99a03ff3-0435-47da-95cc-76b2caeb4dab`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,matched_on:`domain`,name:`Acme Inc.`,domains:`acme.com`,description:`Industrial-grade anvils and rocket skates.`,categories:`Manufacturing, E-commerce`,team:`Jane Doe, John Smith`,primary_location:`Berlin, Germany`,linkedin:`https://linkedin.com/company/acme`,twitter:null,angellist:null,last_interaction:`2026-06-30T16:20:00.000Z ยท calendar`,next_interaction:null,created_at:`2025-08-19T11:40:03.201Z`,custom_properties:{}},Dn=r.array(Tn),On=[En],kn=r.object({id:r.string(),url:r.string().nullable(),...xn(_n),custom_properties:Sn()}),An={id:`7c8e11a0-2f43-4b7e-9a41-08b9350be9dd`,url:`https://app.attio.com/acme/deal/7c8e11a0-2f43-4b7e-9a41-08b9350be9dd`,name:`Acme expansion`,stage:`In Progress`,value:48e3,owner:`sam@pipe0.com`,associated_company:`Acme Inc.`,associated_people:`Jane Doe`,created_at:`2026-03-01T08:00:00.000Z`,custom_properties:{}},jn=r.array(kn),Mn=[An],Nn=r.object({id:r.string(),url:r.string().nullable(),object:r.string(),matched_by:r.string().optional(),values:Sn(),custom_properties:Sn()}),Pn={id:`e2f7bb2a-9d3c-4a11-b0e2-7f31c9a2f102`,url:`https://app.attio.com/acme/listings/e2f7bb2a-9d3c-4a11-b0e2-7f31c9a2f102`,object:`listings`,matched_by:`listing_ref`,values:{name:`Warehouse Berlin-Sรผd`,listing_ref:`LB-2041`,asking_price:125e4},custom_properties:{}},Fn=r.object({id:r.string(),url:r.string().nullable(),parent_object:r.string(),parent_record_id:r.string(),entry_values:Sn(),custom_properties:Sn()}),In={id:`42d2f9b1-3a67-4a4e-8f2f-cf6f4b0a2d11`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,parent_object:`companies`,parent_record_id:`99a03ff3-0435-47da-95cc-76b2caeb4dab`,entry_values:{stage:`Qualified`,priority:`High`},custom_properties:{"parent.name":`Acme Inc.`,"parent.domains":`acme.com`}},Ln=r.object({id:r.string(),email:r.string().nullable(),first_name:r.string().nullable(),last_name:r.string().nullable(),access_level:r.string().nullable(),avatar_url:r.string().nullable()}),Rn={id:`6f2a1c3e-9b4d-4e2a-8f1a-2d3c4b5a6e7f`,email:`sam@acme.com`,first_name:`Sam`,last_name:`Seller`,access_level:`member`,avatar_url:null},zn=r.object({id:r.string(),url:r.string().nullable(),object:r.string(),updated_attributes:r.array(r.string())}),Bn={id:`bf071e1f-6035-429d-b874-d83ea64ea13b`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,object:`people`,updated_attributes:[`job_title`,`stage`]},Vn=r.array(r.string()),Hn=[`1Password`,`AJAX Libraries API`,`AWS Global Accelerator`,`AWS Lambda`,`Algolia`,`Amazon`,`Amazon ALB`,`Amazon Elastic Load Balancing Sticky Session`,`Amazon Ireland Region`],Un=r.object({spend_history:r.array(r.object({date:r.string(),spend_usd:r.number()})),spending_trend:r.number(),technology_list:r.array(r.string()),technologies_by_tag:r.record(r.string(),r.array(r.string()))}),Wn={spend_history:[{date:`2023-09-05`,spend_usd:480},{date:`2023-11-04`,spend_usd:780},{date:`2024-01-03`,spend_usd:1067},{date:`2024-10-29`,spend_usd:1564},{date:`2025-02-26`,spend_usd:1492},{date:`2025-04-27`,spend_usd:1571},{date:`2025-06-26`,spend_usd:1470}],spending_trend:.23,technology_list:`1Password,AJAX Libraries API,AWS Global Accelerator,AWS Lambda,Algolia,Amazon,Amazon ALB,Amazon Elastic Load Balancing Sticky Session,Amazon Ireland Region,Amazon Oregon Region,Amazon S3,Amazon S3 CDN,Amazon Tokyo Region,Amazon Virginia Region,Angular JS,Attribution,Axios,BunnyCDN General,CDN JS,Calendly,Cart Functionality,CloudFront,Cloudflare,Cloudflare Bot Manager,Cloudflare CDN,Cloudflare Hosting,Cloudflare Insights,Cloudflare JS,Cloudflare Network Error Logging,Cloudflare Radar,Cloudflare Radar Top 100k,Cloudflare Radar Top 200k,Cloudflare Radar Top 500k,Cloudflare Radar Top 50k,Cloudflare Web Analytics,Cloudinary,Cogeco Peer 1,CommonCrawl Top 500k,Content Delivery Network,ConvertKit,Cowboy,CrUX Dataset,CrUX Top 10m,CrUX Top 1m,CrUX Top 50m,CrUX Top 5m,Digital Ocean,Domain Not Resolving,DoubleClick.Net,Drata,Embedly,Euro,Express,Fastly,GStatic Google Static Content,Get Koala,GitHub Buttons,Global Site Tag,Google AdWords Conversion,Google Analytics,Google Analytics 4,Google Conversion Linker,Google Conversion Tracking,Google Font API,Google Hosted Libraries,Google Hosted Web Font Loader,Google Registrar,Google Remarketing,Google Tag Manager,Gravatar Profiles,Headless UI,Heroku Vegur Proxy,HubSpot Analytics,Hubspot,Hubspot Forms,IP API,IP API Pro,IPv6,Incident.io,Intellimize,Intercom,Intersection Observer,KaTeX,LinkedIn Ads,LinkedIn Insights,LiveIntent,Loom,Lorem Ipsum,Mandrill,Merge,Mintlify,Moment JS,My Salesforce,Netlify,Next.js,OpenResty,Plausible Analytics,PostHog,PrismJS,Product Hunt`.split(`,`),technologies_by_tag:{registrar:[`Google Registrar`],cdn:[`AJAX Libraries API`,`Amazon S3`,`BunnyCDN General`,`CDN JS`,`CloudFront`,`Cloudflare`,`Cloudflare JS`,`Cloudinary`,`Content Delivery Network`,`GStatic Google Static Content`,`UNPKG`,`jsDelivr`],analytics:`Attribution,Cloudflare Insights,Cloudflare Web Analytics,ConvertKit,Fastly,Get Koala,Global Site Tag,Google AdWords Conversion,Google Analytics,Google Analytics 4,Google Conversion Linker,Google Conversion Tracking,HubSpot Analytics,Hubspot,Hubspot Forms,Incident.io,Intellimize,LinkedIn Insights,Merge,Plausible Analytics,PostHog,Salesforce,Segment,Twitter Analytics,Twitter Conversion Tracking,Twitter Website Universal Tag`.split(`,`),widgets:`1Password.Algolia.Amazon Elastic Load Balancing Sticky Session.Calendly.Cloudflare Bot Manager.Cloudflare Radar.Cloudflare Radar Top 100k.Cloudflare Radar Top 200k.Cloudflare Radar Top 500k.Cloudflare Radar Top 50k.CommonCrawl Top 500k.CrUX Dataset.CrUX Top 10m.CrUX Top 1m.CrUX Top 50m.CrUX Top 5m.Drata.Embedly.GitHub Buttons.Google Font API.Google Tag Manager.Gravatar Profiles.Intercom.Lorem Ipsum.Product Hunt.Quora.SavvyCal.Slack.Termly.Typeform.Typekit.US Privacy User Signal Mechanism.Unsplash.flatpickr.reCAPTCHA.reCAPTCHA Enterprise`.split(`.`),media:[`Loom`],javascript:[`Angular JS`,`Axios`,`Google Hosted Libraries`,`Google Hosted Web Font Loader`,`IP API`,`IP API Pro`,`Intersection Observer`,`Moment JS`,`PrismJS`,`React`,`React Redux`,`Sentry`,`Underscore.js`,`WebFont Loader`,`Webpack`,`core-js`,`crypto browserify`,`es6 promise`,`jQuery`,`jQuery 3.5.1`,`lodash`,`matchMedia`],cms:[`KaTeX`,`Mintlify`,`My Salesforce`,`ReadMe`,`Rippling`,`Webflow`],"web-server":[`AWS Lambda`,`Amazon ALB`,`Cowboy`,`Varnish`],framework:[`Express`,`Headless UI`,`Heroku Vegur Proxy`,`Next.js`,`OpenResty`,`Pusher`],hosting:[`AWS Global Accelerator`,`Amazon`,`Amazon Ireland Region`,`Amazon Oregon Region`,`Amazon Tokyo Region`,`Amazon Virginia Region`,`Cloudflare Hosting`,`Cloudflare Network Error Logging`,`Cogeco Peer 1`,`Digital Ocean`,`Domain Not Resolving`,`Netlify`,`U.S. Server Location`,`Vercel`,`Webflow Hosting`],cdns:[`Amazon S3 CDN`,`Cloudflare CDN`],mx:[`Mandrill`],payment:[`Euro`,`Stripe`],server:[`IPv6`],ads:[`DoubleClick.Net`,`Google Remarketing`,`LinkedIn Ads`,`LiveIntent`,`SkimLinks`,`Twitter Ads`],shop:[`Cart Functionality`]}},Gn=r.object({trigger:r.string().describe("Cal.com's own trigger name, e.g. `BOOKING_CREATED`, `BOOKING_CANCELLED`, `BOOKING_RESCHEDULED`, `MEETING_ENDED`, `FORM_SUBMITTED`. The single most useful field to branch on โ one stream delivers several triggers."),booking_uid:r.string().nullable().describe("Cal.com's stable booking identifier (the `/booking/<uid>` segment). Survives a reschedule as a NEW uid โ see `rescheduled_from_uid` to link them."),title:r.string().nullable().describe("Booking title, e.g. `30 Min Meeting between A and B`."),status:r.string().nullable().describe("`ACCEPTED`, `PENDING`, `CANCELLED` or `REJECTED` as Cal.com reports it."),start_time:r.string().nullable().describe(`ISO 8601 start of the booked slot โ the meeting time, not the booking time.`),end_time:r.string().nullable().describe(`ISO 8601 end of the booked slot.`),timezone:r.string().nullable().describe(`IANA timezone the attendee booked in.`),event_type_id:r.number().nullable().describe(`Which Cal.com event type was booked. The way to tell a demo from an intro call when one stream watches a whole account.`),event_type_slug:r.string().nullable().describe("Slug of the booked event type, e.g. `30min`."),organizer_email:r.string().nullable().describe(`Email of the Cal.com user who was booked.`),organizer_name:r.string().nullable().describe(`Name of the Cal.com user who was booked.`),attendee_emails:r.array(r.string()).describe("Every attendee email on the booking, in Cal.com's order โ the first is the person who booked. The flat `email` column carries that first one."),attendee_names:r.array(r.string()).describe("Attendee names, aligned with `attendee_emails`."),location:r.string().nullable().describe("Where it happens, as Cal.com stores it โ a URL, an address, a phone number, or an integration key like `integrations:daily`."),meeting_url:r.string().nullable().describe(`Video call link when the location is an integrated conferencing provider.`),additional_notes:r.string().nullable().describe(`The free-text note field on the booking form.`),responses:r.record(r.string(),r.unknown()).describe(`Answers to the event type's booking questions, keyed by question identifier. Custom questions land here and NOWHERE else โ this is where a qualifying answer ('company size', 'what do you want to discuss') lives.`),cancellation_reason:r.string().nullable().describe(`Set on a cancellation; null otherwise.`),rescheduled_from_uid:r.string().nullable().describe(`On a reschedule, the uid of the booking this one replaced. Null for a first booking.`),payment_paid:r.boolean().nullable().describe(`For paid event types: whether payment completed. Null when the type is free.`),booked_at:r.string().nullable().describe(`When the booking was MADE, as opposed to when the meeting is scheduled for.`)}).describe(`One Cal.com booking`),Kn={trigger:`BOOKING_CREATED`,booking_uid:`bFJeNb2uX8ANpT3JL5EfXw`,title:`30 Min Meeting between Ada Lovelace and Charles Babbage`,status:`ACCEPTED`,start_time:`2026-08-21T14:00:00Z`,end_time:`2026-08-21T14:30:00Z`,timezone:`Europe/London`,event_type_id:1274901,event_type_slug:`30min`,organizer_email:`ada.lovelace@example.com`,organizer_name:`Ada Lovelace`,attendee_emails:[`charles.babbage@analyticalengines.com`],attendee_names:[`Charles Babbage`],location:`integrations:daily`,meeting_url:`https://app.cal.com/video/bFJeNb2uX8ANpT3JL5EfXw`,additional_notes:`Keen to see the difference-engine integration.`,responses:{"what-are-you-hoping-to-cover":`Pricing for a 40-seat team`},cancellation_reason:null,rescheduled_from_uid:null,payment_paid:null,booked_at:`2026-08-19T09:12:44Z`},qn=[`meeting`,`out_of_office`,`focus_time`,`working_location`,`birthday`,`from_gmail`,`other`],Jn=r.object({event_title:r.string().nullable(),event_start:r.string().nullable(),event_end:r.string().nullable(),event_timezone:r.string().nullable(),event_type:r.enum(qn),event_location:r.string().nullable(),event_url:r.string().nullable(),organizer_email:r.string().nullable(),attendee_emails:r.array(r.string()),virtual_meeting_url:r.string().nullable()}),Yn={event_title:`Intro call โ Analytical Engines Ltd`,event_start:`2026-07-14T11:00:00+02:00`,event_end:`2026-07-14T11:30:00+02:00`,event_timezone:`Europe/Berlin`,event_type:`meeting`,event_location:`Google Meet`,event_url:`https://www.google.com/calendar/event?eid=N2FjOWZrcTJuMGU4YjFtNQ`,organizer_email:`ada.lovelace@example.com`,attendee_emails:[`ada.lovelace@example.com`,`charles.babbage@analyticalengines.com`],virtual_meeting_url:`https://meet.google.com/abc-defg-hij`},Xn=r.object({profile:r.object({id:r.string().nullable().optional().describe(`Profile ID`),name:r.string().nullable().optional().describe(`Full name`),location:r.string().nullable().optional().describe(`Profile location`),location_country:r.string().nullable().optional().describe(`Country of the profile location`),location_regions:r.array(r.string()).nullable().optional().describe(`Regions associated with the profile location`),headline:r.string().nullable().optional().describe(`Profile headline`),description:r.string().nullable().optional().describe(`Profile description or summary`),linkedin_url:r.string().nullable().optional().describe(`LinkedIn profile URL`),picture_permalink:r.string().nullable().optional().describe(`URL to profile picture`),connections_count:r.number().nullable().optional().describe(`Number of LinkedIn connections`),followers_count:r.number().nullable().optional().describe(`Number of followers`),is_working:r.boolean().nullable().optional().describe(`Whether the person is currently working`),is_decision_maker:r.boolean().nullable().optional().describe(`Whether the person is a decision maker`),total_experience_duration_months:r.number().nullable().optional().describe(`Total work experience duration in months`),projected_total_salary:r.number().nullable().optional().describe(`Projected total salary`),post_count:r.number().nullable().optional().describe(`Number of posts`),posts:r.string().nullable().optional().describe(`Posts content`),liked_posts:r.string().nullable().optional().describe(`Posts liked by the user`),recommendations:r.string().nullable().optional().describe(`Recommendations received`),recommendations_count:r.number().nullable().optional().describe(`Number of recommendations`),skills:r.array(r.string()).nullable().optional().describe(`List of skills`),languages:r.array(r.string()).nullable().optional().describe(`List of spoken languages`),courses:r.array(r.any()).nullable().optional().describe(`List of courses`),github_username:r.string().nullable().optional().describe(`GitHub username`),github_contributions_count:r.number().nullable().optional().describe(`GitHub contributions count`)}).nullable().optional().describe(`Profile information`),experience:r.array(r.object({employee_position_id:r.string().nullable().optional().describe(`Position ID`),employee_title:r.string().nullable().optional().describe(`Job title`),employer_name:r.string().nullable().optional().describe(`Employer name`),employee_description:r.string().nullable().optional().describe(`Employee description`),employer_linkedin_description:r.string().nullable().optional().describe(`Employer's LinkedIn description`),employer_linkedin_id:r.string().nullable().optional().describe(`Employer's LinkedIn ID`),employer_logo_url:r.string().nullable().optional().describe(`Employer logo URL`),start_date:r.string().nullable().optional().describe(`Employment start date`),end_date:r.string().nullable().optional().describe(`Employment end date`),employee_location:r.string().nullable().optional().describe(`Employee's work location`),employer_company_ids:r.array(r.any()).nullable().optional().describe(`Employer company IDs`),employer_company_website_domains:r.array(r.any()).nullable().optional().describe(`Employer company website domains`),location:r.string().nullable().optional().describe(`Location`),is_current:r.boolean().nullable().optional().describe(`Whether this is the current position`),duration_months:r.string().nullable().optional().describe(`Duration of employment in months`),department:r.string().nullable().optional().describe(`Department`),is_public:r.boolean().nullable().optional().describe(`Whether the experience is public`),company_id:r.string().nullable().optional().describe(`Company ID`),company_annual_revenue:r.union([r.string(),r.number()]).nullable().optional().describe(`Company annual revenue`),company_employees_count:r.union([r.string(),r.number()]).nullable().optional().describe(`Number of company employees`),company_followers_count:r.union([r.string(),r.number()]).nullable().optional().describe(`Number of company followers`),company_founded_year:r.union([r.string(),r.number()]).nullable().optional().describe(`Year company was founded`),company_hq_city:r.string().nullable().optional().describe(`Company headquarters city`),company_hq_country:r.string().nullable().optional().describe(`Company headquarters country`),company_hq_regions:r.array(r.string()).nullable().optional().describe(`Company headquarters regions`),company_industry:r.string().nullable().optional().describe(`Industry`),company_is_b2b:r.boolean().nullable().optional().describe(`Whether the company is B2B`),company_linkedin_url:r.string().nullable().optional().describe(`Company LinkedIn URL`),company_name_alias:r.array(r.string()).nullable().optional().describe(`Company name aliases`),company_type:r.string().nullable().optional().describe(`Company type`),company_updates:r.array(r.string()).nullable().optional().describe(`Company updates`),company_employee_reviews_aggregate_score:r.number().nullable().optional().describe(`Average employee review score`),company_employee_reviews_count:r.number().nullable().optional().describe(`Number of employee reviews`),competitors:r.array(r.string()).nullable().optional().describe(`List of competitors`),technologies_used:r.array(r.string()).nullable().optional().describe(`Technologies used`),active_job_postings_count:r.number().nullable().optional().describe(`Active job postings count`),active_job_postings_titles:r.array(r.string()).nullable().optional().describe(`Titles of active job postings`),last_funding_round_amount_raised:r.number().nullable().optional().describe(`Amount raised in last funding round`),last_funding_round_announced_month:r.number().nullable().optional().describe(`Month last funding round was announced`),last_funding_round_announced_year:r.number().nullable().optional().describe(`Year last funding round was announced`),last_funding_round_lead_investors:r.array(r.string()).nullable().optional().describe(`Lead investors of last funding round`),last_funding_round_name:r.string().nullable().optional().describe(`Name of last funding round`),last_funding_round_num_investors:r.number().nullable().optional().describe(`Number of investors in last funding round`)})).nullable().optional().describe(`Work experience entries`),education:r.array(r.object({institute_name:r.string().nullable().optional().describe(`Institution name`),degree_name:r.string().nullable().optional().describe(`Degree name`),degrees:r.array(r.string()).nullable().optional().describe(`List of degrees`),field_of_study:r.string().nullable().optional().describe(`Field of study`),institute_linkedin_id:r.string().nullable().optional().describe(`Institution LinkedIn ID`),institute_linkedin_url:r.string().nullable().optional().describe(`Institution LinkedIn URL`),institute_logo_url:r.string().nullable().optional().describe(`Institution logo URL`),institution_city:r.string().nullable().optional().describe(`Institution city`),institution_state:r.string().nullable().optional().describe(`Institution state`),institution_country_iso2:r.string().nullable().optional().describe(`Institution country ISO2 code`),institution_country_iso3:r.string().nullable().optional().describe(`Institution country ISO3 code`),institution_regions:r.array(r.string()).nullable().optional().describe(`Institution regions`),institution_full_address:r.string().nullable().optional().describe(`Institution full address`),institution_street:r.string().nullable().optional().describe(`Institution street`),institution_zipcode:r.string().nullable().optional().describe(`Institution ZIP code`),start_date:r.union([r.string(),r.number()]).nullable().optional().describe(`Start date`),start_month:r.number().nullable().optional().describe(`Start month`),end_date:r.union([r.string(),r.number()]).nullable().optional().describe(`End date`),end_month:r.number().nullable().optional().describe(`End month`),description:r.string().nullable().optional().describe(`Description`),activities_and_societies:r.string().nullable().optional().describe(`Activities and societies`),order_in_profile:r.number().nullable().optional().describe(`Order in profile`)})).nullable().optional().describe(`Education history`),awards:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`Awards`),certifications:r.array(r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_month:r.number().nullable(),date_to_year:r.number().nullable()})).nullable().optional().describe(`Certifications`),organizations:r.array(r.object({organization_name:r.string().nullable().optional().describe(`Organization name`),position:r.string().nullable().optional().describe(`Position in organization`),description:r.string().nullable().optional().describe(`Organization description`),date_from_year:r.number().nullable().optional().describe(`Start year`),date_from_month:r.number().nullable().optional().describe(`Start month`),date_to_year:r.number().nullable().optional().describe(`End year`),date_to_month:r.number().nullable().optional().describe(`End month`)})).nullable().optional().describe(`Organizations`),patents:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`Patents`),projects:r.array(r.object({name:r.string().nullable().optional().describe(`Project name`),description:r.string().nullable().optional().describe(`Project description`),date_from_year:r.number().nullable().optional().describe(`Start year`),date_from_month:r.number().nullable().optional().describe(`Start month`),date_to_year:r.number().nullable().optional().describe(`End year`),date_to_month:r.number().nullable().optional().describe(`End month`)})).nullable().optional().describe(`Projects`),publications:r.array(r.object({title:r.string().nullable().optional().describe(`Publication title`),description:r.string().nullable().optional().describe(`Publication description`),publisher_names:r.string().nullable().optional().describe(`Publisher names`),date_year:r.number().nullable().optional().describe(`Publication year`),date_month:r.number().nullable().optional().describe(`Publication month`)})).nullable().optional().describe(`Publications`),github_repos:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`GitHub repositories`),embedding_info:r.object({similarity_score:r.number().nullable().optional().describe(`Embedding similarity score`)}).nullable().optional().describe(`Embedding metadata`)}),Zn={profile:{id:`444085232`,name:`John Do`,location:``,location_country:``,location_regions:[],headline:`Full Stack Engineer at Sample Corp and Devsu`,description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Nullam in fermentum dui. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,linkedin_url:`https://www.linkedin.com/in/john-doe-xx1bb01b54`,picture_permalink:`https://i.pravatar.cc/150`,connections_count:0,followers_count:509,is_working:!1,is_decision_maker:!1,total_experience_duration_months:0,projected_total_salary:0,post_count:0,posts:``,liked_posts:``,recommendations:``,recommendations_count:0,skills:`junit.sql.collections.dsl.pruebas.angularjs.continuous delivery.spring boot.scrum.factoring.education.perl.digital.database.registration.data entry.oracle.mockito.erp.software.workflow.javascript.ux.knockoutjs.bamboo.sonar.angular.construction.auditing.gobierno.unix.api.web services.php.tax.evaluation.administration.components.android.java.glassfish.projects.middleware.spring.angular js`.split(`.`),languages:[],courses:[],github_username:``,github_contributions_count:0},experience:[{employee_position_id:``,employee_title:`Software Engineer`,employer_name:`DevShop Inc.`,employee_description:null,employer_linkedin_description:`Software Development for sameple companies`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2020-12`,end_date:``,employee_location:null,employer_company_ids:[],employer_company_website_domains:[],location:null,is_current:!0,duration_months:`53.0`,department:`Engineering and Technical`,is_public:!1,company_id:`10239632.0`,company_annual_revenue:null,company_employees_count:`231.0`,company_followers_count:`45113.0`,company_founded_year:`2010`,company_hq_city:`Orlando`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_industry:`Software Development`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-corp-xyz`,company_name_alias:[`sightx`,`sightx inc.`],company_type:`Privately Held`,company_updates:[`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Nullam in fermentum dui. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Duis varius bibendum elit et dignissim. Maecenas consectetur efficitur leo a tempus. Pellentesque sodales viverra euismod. Fusce nibh est, condimentum eu nibh et, luctus bibendum massa. Fusce pulvinar commodo dolor, in mattis lacus mattis sit amet. Pellentesque finibus aliquam enim facilisis tempor. Nulla nec dui tincidunt, consequat arcu ut, facilisis elit. Suspendisse sodales neque mauris, sollicitudin efficitur turpis tempus sit amet. Curabitur a magna non nunc finibus congue vel congue nisl. `,`Duis varius bibendum elit et dignissim. Maecenas consectetur efficitur leo a tempus. Pellentesque sodales viverra euismod. Fusce nibh est, condimentum eu nibh et, luctus bibendum massa. Fusce pulvinar commodo dolor, in mattis lacus mattis sit amet. Pellentesque finibus aliquam enim facilisis tempor. Nulla nec dui tincidunt, consequat arcu ut, facilisis elit. Suspendisse sodales neque mauris, sollicitudin efficitur turpis tempus sit amet. Curabitur a magna non nunc finibus congue vel congue nisl. `],company_employee_reviews_aggregate_score:0,company_employee_reviews_count:0,competitors:[`forsta`,`semeon analytics`,`voxco`,`optimal workshop`],technologies_used:[`well`,`git`,`react`,`impact`,`symfony`,`selenium`,`linkedin`,`mongodb`],active_job_postings_count:0,active_job_postings_titles:[],last_funding_round_amount_raised:0,last_funding_round_announced_month:9,last_funding_round_announced_year:2022,last_funding_round_lead_investors:[`Sample Ventures`],last_funding_round_name:`Seed Round - Sample VC`,last_funding_round_num_investors:1},{employee_position_id:`400964.0`,employee_title:`Senior Software Engineer`,employer_name:`Sample Corp`,employee_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2016-04`,end_date:`2017-02`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`10.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`11288.0`,company_followers_count:`391437.0`,company_founded_year:`1893`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`Banking`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`26432675.0`,employee_title:`Docente Universitario`,employer_name:`Universidad Catรณlica de Honduras 'Nuestra Seรฑora Reina de la Paz'โ`,employee_description:null,employer_linkedin_description:`Higher Education ['education', 'science and education > education', 'academic programs', 'international collaborations', 'university', 'scholarships']`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2007`,end_date:`2012`,employee_location:`Tegucigalpa Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa Honduras`,is_current:!1,duration_months:`60.0`,department:`Education`,company_annual_revenue:null,company_employees_count:`496.0`,company_followers_count:`30251.0`,company_founded_year:`1993`,company_hq_city:null,company_hq_country:`Honduras`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],company_industry:`Higher Education`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/school/universidad-cat%c3%b3lica-de-honduras-%27nuestra-se%c3%b1ora-reina-de-la-paz%27`,company_type:`Educational`},{employee_position_id:`8250581.0`,employee_title:`Software Developer`,employer_name:`Lab4U`,employee_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2013-09`,end_date:`2014-02`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`5.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`25.0`,company_followers_count:`6202.0`,company_founded_year:`2013`,company_hq_city:`San Francisco`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_industry:`Education Management`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`3634778.0`,employee_title:`Senior Software Engineer`,employer_name:`IDEATI S.A.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_id:``,employer_logo_url:``,start_date:`2019-12`,end_date:`2020-07`,employee_location:`Panama`,employer_company_ids:[],employer_company_website_domains:[],location:`Panama`,is_current:!1,duration_months:`7.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`18.0`,company_followers_count:`334.0`,company_founded_year:`2009`,company_hq_city:null,company_hq_country:`Panama`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],company_industry:`Software Development`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-corp-xyz`,company_type:`Privately Held`},{employee_position_id:null,employee_title:`Frontend Developer`,employer_name:`Acme Inc`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2009`,end_date:`2010`,employee_location:`Tegucigalpa, Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa, Honduras`,is_current:!1,duration_months:`12.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Technical Team Lead`,employer_name:`Direcciรณn Ejecutiva de Ingresos`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2010`,end_date:`2012`,employee_location:`Tegucigalpa, Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa, Honduras`,is_current:!1,duration_months:`24.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Analista Programador lรญder De Proyectos`,employer_name:`Acme Inc.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2006`,end_date:`2009`,employee_location:`Tegucigalpa`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa`,is_current:!1,duration_months:`36.0`,department:null,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Senior Software Engineer`,employer_name:`Sample Crop.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2012`,end_date:`2013-09`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`20.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:`519728.0`,employee_title:`Senior Software Engineer`,employer_name:`Sample Consulting Group`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2014-03`,end_date:`2015-09`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`18.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`68.0`,company_followers_count:`1167.0`,company_founded_year:`2001`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xzy`,company_type:`Privately Held`},{employee_position_id:`519728.0`,employee_title:`Senior Software Engineer`,employer_name:`XYZ Constulting Group`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2017-03`,end_date:`2019-08`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`29.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`68.0`,company_followers_count:`1167.0`,company_founded_year:`2001`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`11914719.0`,employee_title:`Senior Software Engineer`,employer_name:`SAMPL Inc.`,employee_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2015-10`,end_date:`2016-03`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`5.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`36.0`,company_followers_count:`2746.0`,company_founded_year:`2002`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`}],education:[{institute_name:`Sample University`,degree_name:`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`,degrees:[`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`],field_of_study:`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`,institute_linkedin_id:``,institute_linkedin_url:`https://www.linkedin.com/school/usample`,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],institution_full_address:`Av. Libertador Bernardo O'Higgins 1058; Diagonal Paraguay 265, Torre 15; Santiago, 28330111, CL`,institution_street:``,institution_zipcode:``,start_date:`2012.0`,start_month:null,end_date:`2015.0`,end_month:null,description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,activities_and_societies:null,order_in_profile:0},{institute_name:`Universidad Catรณlica de Honduras 'Nuestra Seรฑora Reina de la Paz'`,degree_name:`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`,degrees:[`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`],field_of_study:`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`,institute_linkedin_id:``,institute_linkedin_url:`https://www.linkedin.com/school/sample-inst'`,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],institution_full_address:`San Pedro Sula Col. Zeron 12 Calle 21 Ave. Calle al Hospiral Mario Catarino Rivas; Residencial Las Colinas, Ave. Bella Vista, Calle Principal, La Ceiba, Atlantida.; TEGUCIGALPA, FRANCISCO MORAZAN 4473, HN`,institution_street:``,institution_zipcode:``,start_date:`2002.0`,start_month:null,end_date:`2006.0`,end_month:null,description:null,activities_and_societies:null,order_in_profile:0},{institute_name:`Instituto Salesiano San Miguel`,degree_name:`Bachiller en Ciencias y Letras`,degrees:[`Bachiller en Ciencias y Letras`],field_of_study:`Bachiller en Ciencias y Letras`,institute_linkedin_id:``,institute_linkedin_url:null,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[],institution_full_address:null,institution_street:``,institution_zipcode:``,start_date:`1991.0`,start_month:null,end_date:`2001.0`,end_month:null,description:null,activities_and_societies:null,order_in_profile:0}],awards:[],certifications:[{title:`Cloud Developer`,issuer:`Udacity`,date_from_year:2024,date_from_month:null,date_to_year:null,date_to_month:null},{title:`MCP - Developing and Implementing Web Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET`,issuer:`Microsoft`,date_from_year:2007,date_from_month:null,date_to_year:null,date_to_month:null}],organizations:[],patents:[],projects:[],publications:[],github_repos:[]},Qn=r.object({recommendation:r.string().nullable(),referee_full_name:r.string().nullable(),referee_url:r.string().nullable(),order_in_profile:r.number().nullable()}),$n=r.object({department:r.string().nullable(),management_level:r.string().nullable(),total_experience_duration_months:r.number().nullable()}),er=r.object({field_name:r.string().nullable(),change_type:r.string().nullable(),last_changed_at:r.string().nullable()}),tr=r.object({field_name:r.string().nullable(),last_changed_at:r.string().nullable()}),nr=r.object({id:r.string().nullable(),name:r.string().nullable(),full_name:r.string().nullable(),first_name:r.string().nullable(),first_name_initial:r.string().nullable(),middle_name:r.string().nullable(),middle_name_initial:r.string().nullable(),last_name:r.string().nullable(),last_name_initial:r.string().nullable(),headline:r.string().nullable(),description:r.string().nullable(),summary:r.string().nullable(),picture_permalink:r.string().nullable(),picture_url:r.string().nullable(),location:r.string().nullable(),location_full:r.string().nullable(),location_country:r.string().nullable(),location_city:r.string().nullable(),location_state:r.string().nullable(),location_country_iso2:r.string().nullable(),location_country_iso3:r.string().nullable(),location_regions:r.array(r.string()).nullable(),linkedin_url:r.string().nullable(),linkedin_shorthand_names:r.array(r.string()).nullable(),connections_count:r.number().nullable(),followers_count:r.number().nullable(),post_count:r.number().nullable(),posts:r.string().nullable(),liked_posts:r.string().nullable(),recommendations:r.array(Qn).nullable(),recommendations_count:r.number().nullable(),is_working:r.number().nullable(),is_decision_maker:r.number().nullable(),total_experience_duration_months:r.number().nullable(),total_experience_duration_months_breakdown_department:r.array($n).nullable(),total_experience_duration_months_breakdown_management_level:r.array($n).nullable(),active_experience_company_id:r.number().nullable(),active_experience_title:r.string().nullable(),active_experience_description:r.string().nullable(),active_experience_department:r.string().nullable(),active_experience_management_level:r.string().nullable(),skills:r.array(r.string()).nullable(),inferred_skills:r.array(r.string()).nullable(),historical_skills:r.array(r.string()).nullable(),interests:r.array(r.string()).nullable(),services:r.unknown().nullable(),last_graduation_date:r.number().nullable(),education_degrees:r.array(r.string()).nullable(),projected_total_salary:r.number().nullable(),projected_base_salary_p25:r.number().nullable(),projected_base_salary_median:r.number().nullable(),projected_base_salary_p75:r.number().nullable(),projected_base_salary_period:r.string().nullable(),projected_base_salary_currency:r.string().nullable(),projected_base_salary_updated_at:r.string().nullable(),projected_additional_salary_period:r.string().nullable(),projected_additional_salary_currency:r.string().nullable(),projected_additional_salary_updated_at:r.string().nullable(),projected_total_salary_p25:r.number().nullable(),projected_total_salary_median:r.number().nullable(),projected_total_salary_p75:r.number().nullable(),projected_total_salary_period:r.string().nullable(),projected_total_salary_currency:r.string().nullable(),projected_total_salary_updated_at:r.string().nullable(),projected_additional_salary:r.array(r.unknown()).nullable(),patents_count:r.number().nullable(),patents_topics:r.array(r.string()).nullable(),publications_count:r.number().nullable(),publications_topics:r.array(r.string()).nullable(),projects_count:r.number().nullable(),projects_topics:r.array(r.string()).nullable(),created_at:r.string().nullable(),updated_at:r.string().nullable(),checked_at:r.string().nullable(),changed_at:r.string().nullable(),experience_change_last_identified_at:r.string().nullable(),op_created_at:r.string().nullable(),op_updated_at:r.string().nullable(),profile_root_field_changes_summary:r.array(er).nullable(),profile_collection_field_changes_summary:r.array(tr).nullable(),experience_recently_started:r.array(r.unknown()).nullable(),experience_recently_closed:r.array(r.unknown()).nullable()}),rr=r.object({active_experience:r.number().nullable(),position_title:r.string().nullable(),department:r.string().nullable(),management_level:r.string().nullable(),location:r.string().nullable(),description:r.string().nullable(),date_from:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to:r.string().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable(),duration_months:r.number().nullable(),company_id:r.number().nullable(),company_name:r.string().nullable(),company_type:r.string().nullable(),company_founded_year:r.number().nullable(),company_followers_count:r.number().nullable(),company_website:r.string().nullable(),company_facebook_url:r.array(r.string()).nullable(),company_twitter_url:r.array(r.string()).nullable(),company_professional_network_url:r.string().nullable(),company_linkedin_url:r.string().nullable(),company_size_range:r.string().nullable(),company_employees_count:r.number().nullable(),company_industry:r.string().nullable(),company_categories_and_keywords:r.array(r.string()).nullable(),company_annual_revenue_source_1:r.number().nullable(),company_annual_revenue_currency_source_1:r.string().nullable(),company_annual_revenue_source_5:r.number().nullable(),company_annual_revenue_currency_source_5:r.string().nullable(),company_employees_count_change_yearly_percentage:r.number().nullable(),company_last_funding_round_date:r.string().nullable(),company_last_funding_round_amount_raised:r.number().nullable(),company_hq_full_address:r.string().nullable(),company_hq_country:r.string().nullable(),company_hq_regions:r.array(r.string()).nullable(),company_hq_country_iso2:r.string().nullable(),company_hq_country_iso3:r.string().nullable(),company_hq_city:r.string().nullable(),company_hq_state:r.string().nullable(),company_hq_street:r.string().nullable(),company_hq_zipcode:r.string().nullable(),company_last_updated_at:r.string().nullable(),company_stock_ticker:r.array(r.string()).nullable(),company_is_b2b:r.number().nullable(),order_in_profile:r.number().nullable()}),ir=r.object({degree:r.string().nullable(),description:r.string().nullable(),institution_url:r.string().nullable(),institution_name:r.string().nullable(),institution_full_address:r.string().nullable(),institution_country_iso2:r.string().nullable(),institution_country_iso3:r.string().nullable(),institution_regions:r.array(r.string()).nullable(),institution_city:r.string().nullable(),institution_state:r.string().nullable(),institution_street:r.string().nullable(),institution_zipcode:r.string().nullable(),date_from_year:r.number().nullable(),date_to_year:r.number().nullable(),activities_and_societies:r.string().nullable(),order_in_profile:r.number().nullable()}),ar=r.object({language:r.string().nullable(),proficiency:r.string().nullable(),order_in_profile:r.number().nullable()}),or=r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable()}),sr=r.object({name:r.string().nullable(),description:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable()}),cr=r.object({reasoning:r.string().nullable(),answer:r.string().nullable()}),lr=r.object({profile:nr.nullable(),experience:r.array(rr),education:r.array(ir),languages:r.array(ar),awards:r.array(r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_year:r.int().nullable(),date_month:r.int().nullable(),order_in_profile:r.int().nullable()})),certifications:r.array(or),organizations:r.array(r.object({organization_name:r.string().nullable(),position:r.string().nullable(),description:r.string().nullable(),date_from_year:r.int().nullable(),date_from_month:r.int().nullable(),date_to_year:r.int().nullable(),date_to_month:r.int().nullable()})),patents:r.array(r.object({title:r.string(),description:r.string().nullable(),status:r.string().nullable(),date_year:r.int().nullable(),date_month:r.int().nullable()})),projects:r.array(sr),publications:r.array(r.object({title:r.string().nullable(),description:r.string().nullable(),publisher_names:r.array(r.string()).nullable(),date_year:r.int().nullable(),date_month:r.int().nullable()})),github_repos:r.array(r.object({name:r.string().nullable(),summary:r.string().nullable(),stars:r.int().nullable(),contributions_count:r.int().nullable()})),courses:r.array(r.object({organizer:r.string().nullable(),title:r.string(),order_in_profile:r.int()})),match_data:r.record(r.string(),cr).nullable()}),ur={profile:{id:`595453327`,name:`Mat Cole`,full_name:`Mat Col`,first_name:`Mat`,first_name_initial:`M`,middle_name:null,middle_name_initial:null,last_name:`Junior`,last_name_initial:`J`,headline:`Software Engineer`,description:`๐ Front: React, Angular, NextJs, Tailwind โ Back: Golang, Node, Python, Java (Springboot) ๐งฑ Infra: AWS, Terraform, Ansible, CI Pipelines, Kubernetes ๐จ Arch: Microservices, Monolith, DDD, Event Driven I turn coffee into code. As a dedicated student and practitioner of modern development practices, I am capable of contributing to all development steps on any software project from source to infrastructure and from planning to deployment. I do a lot of side projects. Some of them have made into small commercial solutions. Others helped me advance my knowledge and development technique. One time I made a WhatsApp broadcasting system(it was like a mailing list but for WhatsApp). Angular and Golang were the main technologies behind it. My employer at the time got really interested and bought the idea of trying it in production. It was a real success, the customer engagement was over the roof. Occasionally I contribute to open source projects. Now if I may. It's time to code ๐จ๐ปโ๐ป`,summary:`๐ Front: React, Angular, NextJs, Tailwind โ Back: Golang, Node, Python, Java (Springboot) ๐งฑ Infra: AWS, Terraform, Ansible, CI Pipelines, Kubernetes ๐จ Arch: Microservices, Monolith, DDD, Event Driven I turn coffee into code. As a dedicated student and practitioner of modern development practices, I am capable of contributing to all development steps on any software project from source to infrastructure and from planning to deployment. I do a lot of side projects. Some of them have made into small commercial solutions. Others helped me advance my knowledge and development technique. One time I made a WhatsApp broadcasting system(it was like a mailing list but for WhatsApp). Angular and Golang were the main technologies behind it. My employer at the time got really interested and bought the idea of trying it in production. It was a real success, the customer engagement was over the roof. Occasionally I contribute to open source projects. Now if I may. It's time to code ๐จ๐ปโ๐ป`,picture_permalink:`https://media.licdn.com/dms/image/v2/C4D03AQF_1Wt7RyfYZeQ/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1x616980064425?e=2147483647&v=beta&t=jzbQpbwytqaKglNQwcjRsyyhS4LFXo-f-6Reco1PsEs`,picture_url:`https://media.licdn.com/dms/image/v2/C4D03AQF_1Wft7RyYZeQ/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1x616980064425?e=2147483647&v=beta&t=jzbQpbwytqaKglNQwcjRsyyhS4LFXo-f-6Reco1PsEs`,location:`Berlin, Berlin, Germany`,location_full:`Berlin, Berlin, Germany`,location_country:`Germany`,location_city:`Berlin`,location_state:`Berlin`,location_country_iso2:`DE`,location_country_iso3:`DEU`,location_regions:[`Europe`,`Western Europe`,`EMEA`,`EU`],linkedin_url:`https://www.linkedin.com/in/mat-cole-11a821122`,linkedin_shorthand_names:[`mat`,`ma`],connections_count:196,followers_count:200,post_count:0,posts:``,liked_posts:``,recommendations:[{recommendation:`โFrom the first day Mateus started on our development projects he was active and engaged and that energy was consistent until his very last day working with us. We were thrilled to have him join us because of his experience and knowledge and we are extremely grateful for his contributions to our organization. Always professional and courteous and open to ask questions or offer help to his colleagues, Mateus was one of the most productive developers on the development team during his time with us.
|
|
1
|
+
import{extendZodWithOpenApi as e}from"@asteasolutions/zod-to-openapi";import*as t from"zod";import{ZodError as n,z as r}from"zod";import i from"xxhash-wasm";import{addYears as a,differenceInCalendarDays as o,format as s,parse as c,parseISO as l}from"date-fns";import{Drop as u,Liquid as d,TokenKind as f}from"liquidjs";import{Ajv as p}from"ajv";import m from"json-schema-traverse";import{getDomain as ee}from"tldts";e(r);const te={companydb:`https://api.crustdata.com/screener/companydb/autocomplete`,persondb:`https://api.crustdata.com/screener/persondb/autocomplete`};function ne(e,t){return async(n,r,i)=>{let a=await fetch(te[e],{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Token ${i.apiKey}`},body:JSON.stringify({field:t,query:n,limit:r})});if(!a.ok)throw Error(`Crustdata ${e} autocomplete failed`);return(await a.json()).suggestions.map(e=>({value:e,label:e}))}}const re={companydb:`https://api.crustdata.com/company/search/autocomplete`,persondb:`https://api.crustdata.com/person/search/autocomplete`,jobdb:`https://api.crustdata.com/job/search/autocomplete`};function ie({db:e,field:t}){return async(n=``,r,i)=>{let a=await fetch(re[e],{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${i.apiKey}`,"x-api-version":`2025-11-01`},body:JSON.stringify({field:t,query:n,limit:r})});if(!a.ok)throw Error(`Crustdata ${e} autocomplete failed`);let o=await a.json(),s=new Set,c=[];for(let{value:e}of o.suggestions)!e||s.has(e)||(s.add(e),c.push({value:e,label:e}));return c}}const ae=e=>e.map(e=>({value:e,label:e})),oe=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),se=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),ce=oe([[`Public Company`,`๐`],[`Educational`,`๐`],[`Self Employed`,`๐ค`],[`Government Agency`,`๐๏ธ`],[`Non Profit`,`๐`],[`Self Owned`,`๐ชช`],[`Privately Held`,`๐`],[`Partnership`,`๐ค`]]),le=ae([`1-10 employees`,`11-50 employees`,`51-200 employees`,`201-500 employees`,`501-1000 employees`,`1001-5000 employees`,`5001-10000 employees`,`10001+ employees`]),ue=oe([[`Owner`,`๐`],[`Founder`,`๐`],[`C-Suite`,`๐ผ`],[`Partner`,`๐ค`],[`VP`,`๐๏ธ`],[`Head`,`๐ฏ`],[`Director`,`๐ฌ`],[`Manager`,`๐`],[`Senior`,`โญ`],[`Entry`,`๐ฑ`],[`Intern`,`๐`],[`Other`,`โ`],[`Non-Manager`,`๐ฅ`],[`Founder / Owner`,`๐`]]),de=oe([[`Senior Leadership`,`๐`],[`Consulting`,`๐ผ`],[`Design`,`๐จ`],[`Education`,`๐`],[`Engineering & Technical`,`๐ ๏ธ`],[`Finance`,`๐ฐ`],[`Human Resources`,`๐ฅ`],[`Information Technology`,`๐ป`],[`Legal`,`โ๏ธ`],[`Marketing`,`๐ฃ`],[`Medical & Health`,`๐ฅ`],[`Operations`,`โ๏ธ`],[`Product`,`๐ฆ`],[`Revenue`,`๐ธ`]]),fe=oe([[`$0-$1M`,`๐ช`],[`$1M-$10M`,`๐ต`],[`$10M-$100M`,`๐ฐ`],[`$100M-$1B`,`๐ฆ`],[`$1B+`,`๐`]]),pe=se([[`b2b`,`B2B`,`๐ข`],[`b2c`,`B2C`,`๐๏ธ`]]),me=se([[`influencer`,`Influencer (10,000+ followers)`,`๐ `],[`micro_influencer`,`Micro influencer (5,000-9,999 followers)`,`๐ซ`],[`large`,`Large (500-4,999 followers)`,`๐`],[`moderate`,`Moderate (100-499 followers)`,`โญ`],[`limited`,`Limited (1-99 followers)`,`โจ`],[`none`,`None (0 followers)`,`โช`]]),he=se([[`massive`,`Massive (100,000+ followers)`,`๐`],[`large`,`Large (10,000-99,999 followers)`,`๐`],[`moderate`,`Moderate (1,000-9,999 followers)`,`โญ`],[`limited`,`Limited (1-999 followers)`,`โจ`],[`none`,`None (0 followers)`,`โช`]]),ge=se([[`pre_seed`,`Pre Seed`,`๐ฑ`],[`seed`,`Seed`,`๐ฟ`],[`angel`,`Angel`,`๐`],[`venture_round_unknown_series`,`Venture Round (Unknown Series)`,`โ`],[`series_a`,`Series A`,`1๏ธโฃ`],[`series_b`,`Series B`,`2๏ธโฃ`],[`series_c`,`Series C`,`3๏ธโฃ`],[`series_d`,`Series D`,`4๏ธโฃ`],[`series_e`,`Series E`,`5๏ธโฃ`],[`series_f`,`Series F`,`6๏ธโฃ`],[`series_g`,`Series G`,`7๏ธโฃ`],[`series_h`,`Series H`,`8๏ธโฃ`],[`series_i`,`Series I`,`9๏ธโฃ`],[`series_j`,`Series J`,`๐`],[`debt`,`Debt`,`๐ณ`],[`equity_crowdfunding`,`Equity Crowdfunding`,`๐`],[`convertible_note`,`Convertible Note`,`๐`],[`ico`,`ICO`,`๐ช`],[`private_equity`,`Private Equity`,`๐ผ`],[`other`,`Other`,`๐งฉ`]]),_e=oe([[`Account Management`,`๐ค`],[`Accounting`,`๐`],[`Acquisitions`,`๐`],[`Advertising`,`๐บ`],[`Anesthesiology`,`๐`],[`Application Development`,`๐ฑ`],[`Artificial Intelligence / Machine Learning`,`๐ค`],[`Bioengineering & Biometrics`,`๐งฌ`],[`Brand Management`,`๐ท๏ธ`],[`Business Development`,`๐`],[`Business Intelligence`,`๐ง `],[`Business Service Management / ITSM`,`๐ ๏ธ`],[`Call Center`,`๐`],[`Channel Sales`,`๐ก`],[`Chemical Engineering`,`โ๏ธ`],[`Chiropractics`,`๐ฆด`],[`Clinical Systems`,`๐ฅ`],[`Cloud / Mobility`,`โ๏ธ`],[`Collaboration & Web App`,`๐`],[`Compensation & Benefits`,`๐ต`],[`Compliance`,`โ
`],[`Construction`,`๐๏ธ`],[`Consultant`,`๐ผ`],[`Content Marketing`,`โ๏ธ`],[`Contracts`,`๐`],[`Corporate Secretary`,`๐`],[`Corporate Strategy`,`๐ฏ`],[`Culture, Diversity & Inclusion`,`๐`],[`Customer Experience`,`๐`],[`Customer Marketing`,`๐ข`],[`Customer Retention & Development`,`๐`],[`Customer Service / Support`,`๐ง`],[`Customer Success`,`๐`],[`Data Center`,`๐๏ธ`],[`Data Science`,`๐`],[`Data Warehouse`,`๐ฌ`],[`Database Administration`,`๐๏ธ`],[`Demand Generation`,`๐งฒ`],[`Dentistry`,`๐ฆท`],[`Dermatology`,`๐งด`],[`DevOps`,`โ๏ธ`],[`Digital Marketing`,`๐ป`],[`Digital Transformation`,`๐`],[`Doctors / Physicians`,`๐จโโ๏ธ`],[`eCommerce Development`,`๐`],[`eCommerce Marketing`,`๐๏ธ`],[`eDiscovery`,`๐`],[`Emerging Technology / Innovation`,`๐ก`],[`Employee & Labor Relations`,`๐ค`],[`Engineering & Technical`,`๐ ๏ธ`],[`Enterprise Architecture`,`๐๏ธ`],[`Enterprise Resource Planning`,`๐`],[`Epidemiology`,`๐ฆ `],[`Ethics`,`โ๏ธ`],[`Event Marketing`,`๐`],[`Executive`,`๐ผ`],[`Facilities Management`,`๐ข`],[`Field / Outside Sales`,`๐`],[`Field Marketing`,`๐ณ`],[`Finance`,`๐ฐ`],[`Finance Executive`,`๐ผ`],[`Financial Planning & Analysis`,`๐`],[`Financial Reporting`,`๐`],[`Financial Risk`,`โ ๏ธ`],[`Financial Strategy`,`๐ฏ`],[`Financial Systems`,`๐ฆ`],[`First Responder`,`๐จ`],[`Founder`,`๐`],[`Governance`,`๐๏ธ`],[`Governmental Affairs & Regulatory Law`,`๐`],[`Graphic / Visual / Brand Design`,`๐จ`],[`Growth`,`๐`],[`Health & Safety`,`๐ฆบ`],[`Help Desk / Desktop Services`,`๐ฅ๏ธ`],[`HR / Financial / ERP Systems`,`๐งพ`],[`HR Business Partner`,`๐ค`],[`Human Resource Information System`,`๐พ`],[`Human Resources`,`๐ฅ`],[`Human Resources Executive`,`๐ผ`],[`Industrial Engineering`,`๐ญ`],[`Infectious Disease`,`๐ฆ `],[`Information Security`,`๐`],[`Information Technology`,`๐ป`],[`Information Technology Executive`,`๐ผ`],[`Infrastructure`,`๐๏ธ`],[`Inside Sales`,`๐`],[`Intellectual Property & Patent`,`๐ก`],[`Internal Audit & Control`,`๐`],[`Investor Relations`,`๐ฐ`],[`IT Asset Management`,`๐ฆ`],[`IT Audit / IT Compliance`,`๐`],[`IT Operations`,`โ๏ธ`],[`IT Procurement`,`๐`],[`IT Strategy`,`๐ฏ`],[`IT Training`,`๐`],[`Labor & Employment`,`๐ท`],[`Lawyer / Attorney`,`โ๏ธ`],[`Lead Generation`,`๐ฏ`],[`Learning & Development`,`๐`],[`Leasing`,`๐`],[`Legal`,`โ๏ธ`],[`Legal Counsel`,`โ๏ธ`],[`Legal Executive`,`๐ผ`],[`Legal Operations`,`๐`],[`Litigation`,`๐๏ธ`],[`Logistics`,`๐`],[`Marketing`,`๐ฃ`],[`Marketing Analytics / Insights`,`๐`],[`Marketing Communications`,`๐ฐ`],[`Marketing Executive`,`๐ผ`],[`Marketing Operations`,`โ๏ธ`],[`Mechanic`,`๐ง`],[`Medical & Health Executive`,`๐ฅ`],[`Medical Administration`,`๐`],[`Medical Education & Training`,`๐`],[`Medical Research`,`๐งช`],[`Medicine`,`๐`],[`Mergers & Acquisitions`,`๐ค`],[`Mobile Development`,`๐ฑ`],[`Networking`,`๐`],[`Neurology`,`๐ง `],[`Nursing`,`๐ฉบ`],[`Nutrition & Dietetics`,`๐ฅ`],[`Obstetrics / Gynecology`,`๐คฐ`],[`Office Operations`,`๐ข`],[`Oncology`,`๐๏ธ`],[`Operations`,`โ๏ธ`],[`Operations Executive`,`๐ผ`],[`Ophthalmology`,`๐๏ธ`],[`Optometry`,`๐`],[`Organizational Development`,`๐`],[`Orthopedics`,`๐ฆด`],[`Partnerships`,`๐ค`],[`Pathology`,`๐ฌ`],[`Pediatrics`,`๐ถ`],[`People Operations`,`๐ฅ`],[`Pharmacy`,`๐`],[`Physical Security`,`๐ก๏ธ`],[`Physical Therapy`,`๐คธ`],[`Principal`,`๐ซ`],[`Privacy`,`๐`],[`Product Development`,`๐ง`],[`Product Management`,`๐ฆ`],[`Product Marketing`,`๐ฆ`],[`Product or UI/UX Design`,`๐จ`],[`Professor`,`๐จโ๐ซ`],[`Project & Program Management`,`๐
`],[`Project Development`,`๐ ๏ธ`],[`Project Management`,`๐`],[`Psychiatry`,`๐ง `],[`Psychology`,`๐ง `],[`Public Health`,`๐ฅ`],[`Public Relations`,`๐ฐ`],[`Quality Assurance`,`โ
`],[`Quality Management`,`โ
`],[`Radiology`,`๐ท`],[`Real Estate`,`๐ `],[`Real Estate Finance`,`๐๏ธ`],[`Recruiting & Talent Acquisition`,`๐ฏ`],[`Research & Development`,`๐ฌ`],[`Retail / Store Systems`,`๐๏ธ`],[`Revenue Operations`,`๐ธ`],[`Safety`,`๐ฆบ`],[`Sales`,`๐ธ`],[`Sales Enablement`,`๐ฏ`],[`Sales Engineering`,`๐ ๏ธ`],[`Sales Executive`,`๐ผ`],[`Sales Operations`,`โ๏ธ`],[`Sales Training`,`๐`],[`Scrum Master / Agile Coach`,`๐`],[`Search Engine Optimization / Pay Per Click`,`๐`],[`Servers`,`๐ฅ๏ธ`],[`Shared Services`,`๐`],[`Social Media Marketing`,`๐ฑ`],[`Social Work`,`๐ซ`],[`Software Development`,`๐ป`],[`Sourcing / Procurement`,`๐`],[`Storage & Disaster Recovery`,`๐พ`],[`Store Operations`,`๐ช`],[`Strategic Communications`,`๐ฃ`],[`Superintendent`,`๐ท`],[`Supply Chain`,`๐`],[`Support / Technical Services`,`๐ง`],[`Talent Management`,`๐`],[`Tax`,`๐ต`],[`Teacher`,`๐จโ๐ซ`],[`Technical Marketing`,`๐ ๏ธ`],[`Technician`,`๐ง`],[`Technology Operations`,`โ๏ธ`],[`Telecommunications`,`๐ก`],[`Test / Quality Assurance`,`โ
`],[`Treasury`,`๐ฐ`],[`UI / UX`,`๐จ`],[`Virtualization`,`๐ป`],[`Web Development`,`๐`],[`Workforce Management`,`๐ฅ`]]),ve=oe([[`Abrasives and Nonmetallic Minerals Manufacturing`,`๐ชจ`],[`Accessible Architecture and Design`,`โฟ`],[`Accessible Hardware Manufacturing`,`โฟ`],[`Accommodation and Food Services`,`๐จ`],[`Accounting`,`๐`],[`Administration of Justice`,`โ๏ธ`],[`Administrative and Support Services`,`๐`],[`Advertising Services`,`๐บ`],[`Agricultural Chemical Manufacturing`,`๐งช`],[`Agriculture, Construction, Mining Machinery Manufacturing`,`๐`],[`Air, Water, and Waste Program Management`,`โป๏ธ`],[`Airlines and Aviation`,`โ๏ธ`],[`Alternative Dispute Resolution`,`๐ค`],[`Alternative Fuel Vehicle Manufacturing`,`๐`],[`Alternative Medicine`,`๐ฟ`],[`Ambulance Services`,`๐`],[`Amusement Parks and Arcades`,`๐ข`],[`Animal Feed Manufacturing`,`๐พ`],[`Animation and Post-production`,`๐ฌ`],[`Apparel Manufacturing`,`๐`],[`Appliances, Electrical, and Electronics Manufacturing`,`๐`],[`Architectural and Structural Metal Manufacturing`,`๐๏ธ`],[`Architecture and Planning`,`๐`],[`Armed Forces`,`๐ช`],[`Artificial Rubber and Synthetic Fiber Manufacturing`,`๐งต`],[`Artists and Writers`,`๐จ`],[`Audio and Video Equipment Manufacturing`,`๐๏ธ`],[`Automation Machinery Manufacturing`,`๐ค`],[`Aviation and Aerospace Component Manufacturing`,`๐ฉ๏ธ`],[`Baked Goods Manufacturing`,`๐ฅ`],[`Banking`,`๐ฆ`],[`Bars, Taverns, and Nightclubs`,`๐ป`],[`Bed-and-Breakfasts, Hostels, Homestays`,`๐๏ธ`],[`Beverage Manufacturing`,`๐ฅค`],[`Biomass Electric Power Generation`,`๐ฑ`],[`Biotechnology Research`,`๐งฌ`],[`Blockchain Services`,`โ๏ธ`],[`Blogs`,`๐`],[`Boilers, Tanks, and Shipping Container Manufacturing`,`๐ฆ`],[`Book Publishing`,`๐`],[`Book and Periodical Publishing`,`๐`],[`Breweries`,`๐บ`],[`Broadcast Media Production and Distribution`,`๐ก`],[`Building Construction`,`๐๏ธ`],[`Building Equipment Contractors`,`๐ง`],[`Building Finishing Contractors`,`๐ช`],[`Building Structure and Exterior Contractors`,`๐งฑ`],[`Business Consulting and Services`,`๐ผ`],[`Business Content`,`๐ฐ`],[`Business Intelligence Platforms`,`๐`],[`Cable and Satellite Programming`,`๐ก`],[`Capital Markets`,`๐`],[`Caterers`,`๐ฝ๏ธ`],[`Chemical Manufacturing`,`โ๏ธ`],[`Chemical Raw Materials Manufacturing`,`๐งช`],[`Child Day Care Services`,`๐ถ`],[`Chiropractors`,`๐ฆด`],[`Circuses and Magic Shows`,`๐ช`],[`Civic and Social Organizations`,`๐๏ธ`],[`Civil Engineering`,`๐`],[`Claims Adjusting, Actuarial Services`,`๐งฎ`],[`Clay and Refractory Products Manufacturing`,`๐บ`],[`Climate Data and Analytics`,`๐ก๏ธ`],[`Climate Technology Product Manufacturing`,`๐`],[`Coal Mining`,`โ๏ธ`],[`Collection Agencies`,`๐ต`],[`Commercial and Industrial Equipment Rental`,`๐๏ธ`],[`Commercial and Industrial Machinery Maintenance`,`๐ง`],[`Commercial and Service Industry Machinery Manufacturing`,`๐ญ`],[`Communications Equipment Manufacturing`,`๐ก`],[`Community Development and Urban Planning`,`๐๏ธ`],[`Community Services`,`๐ซ`],[`Computer Games`,`๐ฎ`],[`Computer Hardware Manufacturing`,`๐ฅ๏ธ`],[`Computer Networking Products`,`๐`],[`Computer and Network Security`,`๐`],[`Computers and Electronics Manufacturing`,`๐ป`],[`Conservation Programs`,`๐ณ`],[`Construction`,`๐๏ธ`],[`Construction Hardware Manufacturing`,`๐ฉ`],[`Consumer Goods Rental`,`๐๏ธ`],[`Consumer Services`,`๐๏ธ`],[`Correctional Institutions`,`๐`],[`Cosmetology and Barber Schools`,`๐`],[`Courts of Law`,`โ๏ธ`],[`Credit Intermediation`,`๐ณ`],[`Cutlery and Handtool Manufacturing`,`๐ช`],[`Dairy Product Manufacturing`,`๐ฅ`],[`Dance Companies`,`๐`],[`Data Infrastructure and Analytics`,`๐`],[`Data Security Software Products`,`๐`],[`Defense and Space Manufacturing`,`๐`],[`Dentists`,`๐ฆท`],[`Design Services`,`๐จ`],[`Desktop Computing Software Products`,`๐ฅ๏ธ`],[`Digital Accessibility Services`,`โฟ`],[`Distilleries`,`๐ฅ`],[`E-Learning Providers`,`๐ป`],[`Economic Programs`,`๐น`],[`Education`,`๐`],[`Education Administration Programs`,`๐ซ`],[`Electric Lighting Equipment Manufacturing`,`๐ก`],[`Electric Power Generation`,`โก`],[`Electric Power Transmission, Control, and Distribution`,`๐`],[`Electrical Equipment Manufacturing`,`๐`],[`Electronic and Precision Equipment Maintenance`,`๐ง`],[`Embedded Software Products`,`๐พ`],[`Emergency and Relief Services`,`๐จ`],[`Engineering Services`,`๐ ๏ธ`],[`Engines and Power Transmission Equipment Manufacturing`,`โ๏ธ`],[`Entertainment Providers`,`๐ญ`],[`Environmental Quality Programs`,`๐ฟ`],[`Environmental Services`,`โป๏ธ`],[`Equipment Rental Services`,`๐๏ธ`],[`Events Services`,`๐`],[`Executive Offices`,`๐ข`],[`Executive Search Services`,`๐ฏ`],[`Fabricated Metal Products`,`๐ฉ`],[`Facilities Services`,`๐งน`],[`Family Planning Centers`,`๐จโ๐ฉโ๐ง`],[`Farming`,`๐พ`],[`Farming, Ranching, Forestry`,`๐`],[`Fashion Accessories Manufacturing`,`๐`],[`Financial Services`,`๐ฐ`],[`Fine Arts Schools`,`๐จ`],[`Fire Protection`,`๐ฅ`],[`Fisheries`,`๐ฃ`],[`Flight Training`,`โ๏ธ`],[`Food and Beverage Manufacturing`,`๐ฑ`],[`Food and Beverage Retail`,`๐`],[`Food and Beverage Services`,`๐ฝ๏ธ`],[`Footwear Manufacturing`,`๐`],[`Footwear and Leather Goods Repair`,`๐`],[`Forestry and Logging`,`๐ฒ`],[`Fossil Fuel Electric Power Generation`,`๐ข๏ธ`],[`Freight and Package Transportation`,`๐ฆ`],[`Fruit and Vegetable Preserves Manufacturing`,`๐ฅซ`],[`Fuel Cell Manufacturing`,`๐`],[`Fundraising`,`๐๏ธ`],[`Funds and Trusts`,`๐ฐ`],[`Furniture and Home Furnishings Manufacturing`,`๐๏ธ`],[`Gambling Facilities and Casinos`,`๐ฐ`],[`Geothermal Electric Power Generation`,`๐`],[`Glass Product Manufacturing`,`๐ช`],[`Glass, Ceramics and Concrete Manufacturing`,`๐งฑ`],[`Golf Courses and Country Clubs`,`โณ`],[`Government Administration`,`๐๏ธ`],[`Government Relations Services`,`๐๏ธ`],[`Graphic Design`,`๐จ`],[`Ground Passenger Transportation`,`๐`],[`HVAC and Refrigeration Equipment Manufacturing`,`โ๏ธ`],[`Health and Human Services`,`๐ฅ`],[`Higher Education`,`๐`],[`Highway, Street, and Bridge Construction`,`๐ฃ๏ธ`],[`Historical Sites`,`๐๏ธ`],[`Holding Companies`,`๐ข`],[`Home Health Care Services`,`๐ `],[`Horticulture`,`๐ท`],[`Hospitality`,`๐จ`],[`Hospitals`,`๐ฅ`],[`Hospitals and Health Care`,`๐ฅ`],[`Hotels and Motels`,`๐จ`],[`Household Appliance Manufacturing`,`๐ณ`],[`Household Services`,`๐งน`],[`Household and Institutional Furniture Manufacturing`,`๐ช`],[`Housing Programs`,`๐๏ธ`],[`Housing and Community Development`,`๐๏ธ`],[`Human Resources Services`,`๐ฅ`],[`Hydroelectric Power Generation`,`๐ง`],[`IT Services and IT Consulting`,`๐ป`],[`IT System Custom Software Development`,`๐ป`],[`IT System Data Services`,`๐๏ธ`],[`IT System Design Services`,`๐ฅ๏ธ`],[`IT System Installation and Disposal`,`๐ง`],[`IT System Operations and Maintenance`,`โ๏ธ`],[`IT System Testing and Evaluation`,`๐งช`],[`IT System Training and Support`,`๐`],[`Individual and Family Services`,`๐จโ๐ฉโ๐ง`],[`Industrial Machinery Manufacturing`,`๐ญ`],[`Industry Associations`,`๐ค`],[`Information Services`,`โน๏ธ`],[`Insurance`,`๐ก๏ธ`],[`Insurance Agencies and Brokerages`,`๐ก๏ธ`],[`Insurance Carriers`,`๐ก๏ธ`],[`Insurance and Employee Benefit Funds`,`๐ก๏ธ`],[`Interior Design`,`๐๏ธ`],[`International Affairs`,`๐`],[`International Trade and Development`,`๐`],[`Internet Marketplace Platforms`,`๐`],[`Internet News`,`๐ฐ`],[`Internet Publishing`,`๐ฐ`],[`Interurban and Rural Bus Services`,`๐`],[`Investment Advice`,`๐`],[`Investment Banking`,`๐ผ`],[`Investment Management`,`๐ฐ`],[`Janitorial Services`,`๐งน`],[`Landscaping Services`,`๐ณ`],[`Language Schools`,`๐ฃ๏ธ`],[`Laundry and Drycleaning Services`,`๐งบ`],[`Law Enforcement`,`๐`],[`Law Practice`,`โ๏ธ`],[`Leasing Non-residential Real Estate`,`๐ข`],[`Leasing Residential Real Estate`,`๐๏ธ`],[`Leather Product Manufacturing`,`๐`],[`Legal Services`,`โ๏ธ`],[`Legislative Offices`,`๐๏ธ`],[`Libraries`,`๐`],[`Lime and Gypsum Products Manufacturing`,`๐งฑ`],[`Loan Brokers`,`๐ณ`],[`Machinery Manufacturing`,`๐ญ`],[`Magnetic and Optical Media Manufacturing`,`๐ฟ`],[`Manufacturing`,`๐ญ`],[`Maritime Transportation`,`๐ข`],[`Market Research`,`๐`],[`Marketing Services`,`๐ฃ`],[`Mattress and Blinds Manufacturing`,`๐๏ธ`],[`Measuring and Control Instrument Manufacturing`,`๐`],[`Meat Products Manufacturing`,`๐ฅฉ`],[`Media Production`,`๐ฌ`],[`Media and Telecommunications`,`๐ก`],[`Medical Equipment Manufacturing`,`๐ฉบ`],[`Medical Practices`,`๐ฅ`],[`Medical and Diagnostic Laboratories`,`๐งช`],[`Mental Health Care`,`๐ง `],[`Metal Ore Mining`,`โ๏ธ`],[`Metal Treatments`,`๐ฅ`],[`Metal Valve, Ball, and Roller Manufacturing`,`โ๏ธ`],[`Metalworking Machinery Manufacturing`,`๐ฉ`],[`Military and International Affairs`,`๐ช`],[`Mining`,`โ๏ธ`],[`Mobile Computing Software Products`,`๐ฑ`],[`Mobile Food Services`,`๐`],[`Mobile Gaming Apps`,`๐ฎ`],[`Motor Vehicle Manufacturing`,`๐`],[`Motor Vehicle Parts Manufacturing`,`๐ง`],[`Movies and Sound Recording`,`๐ฌ`],[`Movies, Videos, and Sound`,`๐ฅ`],[`Museums`,`๐๏ธ`],[`Museums, Historical Sites, and Zoos`,`๐ฆ`],[`Musicians`,`๐ต`],[`Nanotechnology Research`,`๐ฌ`],[`Natural Gas Distribution`,`๐ฅ`],[`Natural Gas Extraction`,`โฝ`],[`Newspaper Publishing`,`๐ฐ`],[`Non-profit Organizations`,`๐`],[`Nonmetallic Mineral Mining`,`โ๏ธ`],[`Nonresidential Building Construction`,`๐ข`],[`Nuclear Electric Power Generation`,`โข๏ธ`],[`Nursing Homes and Residential Care Facilities`,`๐ฅ`],[`Office Administration`,`๐๏ธ`],[`Office Furniture and Fixtures Manufacturing`,`๐ช`],[`Oil Extraction`,`๐ข๏ธ`],[`Oil and Coal Product Manufacturing`,`๐ข๏ธ`],[`Oil and Gas`,`๐ข๏ธ`],[`Oil, Gas, and Mining`,`โ๏ธ`],[`Online Audio and Video Media`,`๐ฅ`],[`Online and Mail Order Retail`,`๐ฆ`],[`Operations Consulting`,`๐ผ`],[`Optometrists`,`๐`],[`Outpatient Care Centers`,`๐ฅ`],[`Outsourcing and Offshoring Consulting`,`๐`],[`Packaging and Containers Manufacturing`,`๐ฆ`],[`Paint, Coating, and Adhesive Manufacturing`,`๐จ`],[`Paper and Forest Product Manufacturing`,`๐`],[`Pension Funds`,`๐ฐ`],[`Performing Arts`,`๐ญ`],[`Performing Arts and Spectator Sports`,`๐ญ`],[`Periodical Publishing`,`๐ฐ`],[`Personal Care Product Manufacturing`,`๐งด`],[`Personal Care Services`,`๐`],[`Personal and Laundry Services`,`๐งบ`],[`Pet Services`,`๐พ`],[`Pharmaceutical Manufacturing`,`๐`],[`Philanthropic Fundraising Services`,`๐๏ธ`],[`Photography`,`๐ท`],[`Physical, Occupational and Speech Therapists`,`๐คธ`],[`Physicians`,`๐จโโ๏ธ`],[`Pipeline Transportation`,`๐ข๏ธ`],[`Plastics Manufacturing`,`๐ข๏ธ`],[`Plastics and Rubber Product Manufacturing`,`๐งฐ`],[`Political Organizations`,`๐ณ๏ธ`],[`Postal Services`,`๐ฎ`],[`Primary Metal Manufacturing`,`๐ฉ`],[`Primary and Secondary Education`,`๐ซ`],[`Printing Services`,`๐จ๏ธ`],[`Professional Organizations`,`๐ค`],[`Professional Services`,`๐ผ`],[`Professional Training and Coaching`,`๐`],[`Public Assistance Programs`,`๐คฒ`],[`Public Health`,`๐ฅ`],[`Public Policy Offices`,`๐๏ธ`],[`Public Relations and Communications Services`,`๐ฐ`],[`Public Safety`,`๐จ`],[`Racetracks`,`๐`],[`Radio and Television Broadcasting`,`๐ป`],[`Rail Transportation`,`๐`],[`Railroad Equipment Manufacturing`,`๐`],[`Ranching`,`๐`],[`Ranching and Fisheries`,`๐`],[`Real Estate`,`๐ `],[`Real Estate Agents and Brokers`,`๐`],[`Real Estate and Equipment Rental Services`,`๐๏ธ`],[`Recreational Facilities`,`๐ณ`],[`Regenerative Design`,`โป๏ธ`],[`Religious Institutions`,`โช`],[`Renewable Energy Equipment Manufacturing`,`๐`],[`Renewable Energy Power Generation`,`๐`],[`Renewable Energy Semiconductor Manufacturing`,`๐`],[`Repair and Maintenance`,`๐ง`],[`Research Services`,`๐ฌ`],[`Residential Building Construction`,`๐ `],[`Restaurants`,`๐ฝ๏ธ`],[`Retail`,`๐๏ธ`],[`Retail Apparel and Fashion`,`๐`],[`Retail Appliances, Electrical, and Electronic Equipment`,`๐บ`],[`Retail Art Dealers`,`๐ผ๏ธ`],[`Retail Art Supplies`,`๐จ`],[`Retail Books and Printed News`,`๐`],[`Retail Building Materials and Garden Equipment`,`๐ชด`],[`Retail Florists`,`๐`],[`Retail Furniture and Home Furnishings`,`๐๏ธ`],[`Retail Gasoline`,`โฝ`],[`Retail Groceries`,`๐`],[`Retail Health and Personal Care Products`,`๐งด`],[`Retail Luxury Goods and Jewelry`,`๐`],[`Retail Motor Vehicles`,`๐`],[`Retail Musical Instruments`,`๐ธ`],[`Retail Office Equipment`,`๐จ๏ธ`],[`Retail Office Supplies and Gifts`,`๐`],[`Retail Pharmacies`,`๐`],[`Retail Recyclable Materials & Used Merchandise`,`โป๏ธ`],[`Reupholstery and Furniture Repair`,`๐ช`],[`Robot Manufacturing`,`๐ค`],[`Robotics Engineering`,`๐ค`],[`Rubber Products Manufacturing`,`๐`],[`Satellite Telecommunications`,`๐ฐ๏ธ`],[`Savings Institutions`,`๐ฆ`],[`School and Employee Bus Services`,`๐`],[`Seafood Product Manufacturing`,`๐`],[`Secretarial Schools`,`๐`],[`Securities and Commodity Exchanges`,`๐`],[`Security Guards and Patrol Services`,`๐ฎ`],[`Security Systems Services`,`๐`],[`Security and Investigations`,`๐ต๏ธ`],[`Semiconductor Manufacturing`,`๐พ`],[`Services for Renewable Energy`,`๐`],[`Services for the Elderly and Disabled`,`๐ด`],[`Sheet Music Publishing`,`๐ผ`],[`Shipbuilding`,`๐ข`],[`Shuttles and Special Needs Transportation Services`,`๐`],[`Sightseeing Transportation`,`๐`],[`Skiing Facilities`,`โท๏ธ`],[`Smart Meter Manufacturing`,`๐`],[`Soap and Cleaning Product Manufacturing`,`๐งผ`],[`Social Networking Platforms`,`๐ฌ`],[`Software Development`,`๐ป`],[`Solar Electric Power Generation`,`โ๏ธ`],[`Sound Recording`,`๐๏ธ`],[`Space Research and Technology`,`๐`],[`Specialty Trade Contractors`,`๐จ`],[`Spectator Sports`,`๐๏ธ`],[`Sporting Goods Manufacturing`,`๐`],[`Sports Teams and Clubs`,`โฝ`],[`Sports and Recreation Instruction`,`๐`],[`Spring and Wire Product Manufacturing`,`๐ฉ`],[`Staffing and Recruiting`,`๐ฏ`],[`Steam and Air-Conditioning Supply`,`โจ๏ธ`],[`Strategic Management Services`,`๐ฏ`],[`Subdivision of Land`,`๐บ๏ธ`],[`Sugar and Confectionery Product Manufacturing`,`๐ฌ`],[`Surveying and Mapping Services`,`๐บ๏ธ`],[`Taxi and Limousine Services`,`๐`],[`Technical and Vocational Training`,`๐`],[`Technology, Information and Internet`,`๐ป`],[`Technology, Information and Media`,`๐ก`],[`Telecommunications`,`๐ก`],[`Telecommunications Carriers`,`๐ถ`],[`Telephone Call Centers`,`๐`],[`Temporary Help Services`,`๐ท`],[`Textile Manufacturing`,`๐งต`],[`Theater Companies`,`๐ญ`],[`Think Tanks`,`๐ง `],[`Tobacco Manufacturing`,`๐ฌ`],[`Translation and Localization`,`๐`],[`Transportation Equipment Manufacturing`,`๐`],[`Transportation Programs`,`๐`],[`Transportation, Logistics, Supply Chain and Storage`,`๐`],[`Travel Arrangements`,`๐งณ`],[`Truck Transportation`,`๐`],[`Trusts and Estates`,`๐`],[`Turned Products and Fastener Manufacturing`,`๐ฉ`],[`Urban Transit Services`,`๐`],[`Utilities`,`๐ก`],[`Utilities Administration`,`๐`],[`Utility System Construction`,`๐๏ธ`],[`Vehicle Repair and Maintenance`,`๐ง`],[`Venture Capital and Private Equity Principals`,`๐ฐ`],[`Veterinary Services`,`๐พ`],[`Vocational Rehabilitation Services`,`๐ฆฝ`],[`Warehousing and Storage`,`๐ฌ`],[`Waste Collection`,`๐๏ธ`],[`Waste Treatment and Disposal`,`โป๏ธ`],[`Water Supply and Irrigation Systems`,`๐ง`],[`Water, Waste, Steam, and Air Conditioning Services`,`๐ง`],[`Wellness and Fitness Services`,`๐ง`],[`Wholesale`,`๐ฆ`],[`Wholesale Alcoholic Beverages`,`๐ท`],[`Wholesale Apparel and Sewing Supplies`,`๐งต`],[`Wholesale Appliances, Electrical, and Electronics`,`๐บ`],[`Wholesale Building Materials`,`๐งฑ`],[`Wholesale Chemical and Allied Products`,`๐งช`],[`Wholesale Computer Equipment`,`๐ป`],[`Wholesale Drugs and Sundries`,`๐`],[`Wholesale Food and Beverage`,`๐ฅซ`],[`Wholesale Footwear`,`๐`],[`Wholesale Furniture and Home Furnishings`,`๐๏ธ`],[`Wholesale Hardware, Plumbing, Heating Equipment`,`๐ง`],[`Wholesale Import and Export`,`๐`],[`Wholesale Luxury Goods and Jewelry`,`๐`],[`Wholesale Machinery`,`๐ญ`],[`Wholesale Metals and Minerals`,`โ๏ธ`],[`Wholesale Motor Vehicles and Parts`,`๐`],[`Wholesale Paper Products`,`๐`],[`Wholesale Petroleum and Petroleum Products`,`๐ข๏ธ`],[`Wholesale Photography Equipment and Supplies`,`๐ท`],[`Wholesale Raw Farm Products`,`๐พ`],[`Wholesale Recyclable Materials`,`โป๏ธ`],[`Wind Electric Power Generation`,`๐ฌ๏ธ`],[`Wineries`,`๐ท`],[`Wireless Services`,`๐ถ`],[`Women's Handbag Manufacturing`,`๐`],[`Wood Product Manufacturing`,`๐ชต`],[`Writing and Editing`,`โ๏ธ`],[`Zoos and Botanical Gardens`,`๐ฆ`]]),ye=e=>e.map(e=>({value:e,label:e})),be=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),xe=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),Se=be([[`myself only`,`๐ง`],[`2-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1000`,`๐๏ธ`],[`1001-5000`,`๐๏ธ`],[`5001-10000`,`๐`],[`10001+`,`๐`]]),Ce=be([[`1-500`,`โจ`],[`501-1000`,`โญ`],[`1001-5000`,`๐`],[`5001-10000`,`๐ซ`],[`10001-30000`,`๐ `],[`30000+`,`๐`]]),we=be([[`Series A`,`1๏ธโฃ`],[`Series B`,`2๏ธโฃ`],[`Series C`,`3๏ธโฃ`],[`Series D`,`4๏ธโฃ`]]),Te=be([[`Self-employed`,`๐งโ๐ป`],[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1,000`,`๐๏ธ`],[`1,001-5,000`,`๐๏ธ`],[`5,001-10,000`,`๐`],[`10,001+`,`๐`]]),Ee=[{value:`Arabic`,label:`Arabic`,widgets:{emoji:{char:`๐ธ๐ฆ`}}},{value:`English`,label:`English`,widgets:{emoji:{char:`๐ฌ๐ง`}}},{value:`Spanish`,label:`Spanish`,widgets:{emoji:{char:`๐ช๐ธ`}}},{value:`Portuguese`,label:`Portuguese`,widgets:{emoji:{char:`๐ต๐น`}}},{value:`Chinese`,label:`Chinese`,widgets:{emoji:{char:`๐จ๐ณ`}}},{value:`French`,label:`French`,widgets:{emoji:{char:`๐ซ๐ท`}}},{value:`Italian`,label:`Italian`,widgets:{emoji:{char:`๐ฎ๐น`}}},{value:`Russian`,label:`Russian`,widgets:{emoji:{char:`๐ท๐บ`}}},{value:`German`,label:`German`,widgets:{emoji:{char:`๐ฉ๐ช`}}},{value:`Dutch`,label:`Dutch`,widgets:{emoji:{char:`๐ณ๐ฑ`}}},{value:`Turkish`,label:`Turkish`,widgets:{emoji:{char:`๐น๐ท`}}},{value:`Tagalog`,label:`Tagalog`,widgets:{emoji:{char:`๐ต๐ญ`}}},{value:`Polish`,label:`Polish`,widgets:{emoji:{char:`๐ต๐ฑ`}}},{value:`Korean`,label:`Korean`,widgets:{emoji:{char:`๐ฐ๐ท`}}},{value:`Japanese`,label:`Japanese`,widgets:{emoji:{char:`๐ฏ๐ต`}}},{value:`Malay`,label:`Malay`,widgets:{emoji:{char:`๐ฒ๐พ`}}},{value:`Norwegian`,label:`Norwegian`,widgets:{emoji:{char:`๐ณ๐ด`}}},{value:`Danish`,label:`Danish`,widgets:{emoji:{char:`๐ฉ๐ฐ`}}},{value:`Romanian`,label:`Romanian`,widgets:{emoji:{char:`๐ท๐ด`}}},{value:`Swedish`,label:`Swedish`,widgets:{emoji:{char:`๐ธ๐ช`}}},{value:`Bahasa Indonesia`,label:`Bahasa Indonesia`,widgets:{emoji:{char:`๐ฎ๐ฉ`}}},{value:`Czech`,label:`Czech`,widgets:{emoji:{char:`๐จ๐ฟ`}}}],De=xe([[`funding_round`,`Raised a round`,`๐ฐ`],[`acquisition`,`Made an acquisition`,`๐ค`],[`news`,`Appeared in the news`,`๐ฐ`],[`headcount`,`Headcount changed`,`๐`],[`hiring`,`Hiring activity changed`,`๐`],[`industry`,`Industry changed`,`๐ญ`],[`hq_relocation`,`HQ relocated`,`๐`],[`rebrand`,`Renamed`,`๐ค`]]),Oe=xe([[`new_job`,`Started a new job`,`๐ผ`],[`title_change`,`Title changed`,`๐ท๏ธ`],[`headline`,`Headline changed`,`โ๏ธ`],[`relocation`,`Relocated`,`๐`]]),ke=be([[`Owner / Partner`,`๐`],[`CXO`,`๐ฉ`],[`Vice President`,`๐
`],[`Director`,`๐ฏ`],[`Experienced Manager`,`๐งโ๐ผ`],[`Entry Level Manager`,`๐`],[`Strategic`,`โ๏ธ`],[`Senior`,`โญ`],[`Entry Level`,`๐ฑ`],[`In Training`,`๐`]]);be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]),be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]);const Ae=be([[`Less than 1 year`,`๐ฑ`],[`1 to 2 years`,`๐ฟ`],[`3 to 5 years`,`๐ณ`],[`6 to 10 years`,`๐ฒ`],[`More than 10 years`,`๐๏ธ`]]),je=xe([[`past-24h`,`Past 24 hours`,`๐`],[`past-week`,`Past week`,`๐
`],[`past-month`,`Past month`,`๐๏ธ`],[`past-quarter`,`Past quarter`,`๐`],[`past-year`,`Past year`,`๐`]]),Me=xe([[`photos`,`Photos`,`๐ผ๏ธ`],[`jobs`,`Jobs`,`๐ผ`],[`collaborativeArticles`,`Collaborative articles`,`๐`],[`videos`,`Videos`,`๐ฌ`],[`documents`,`Documents`,`๐`],[`liveVideos`,`Live videos`,`๐ก`]]),Ne=be([[`Accounting`,`๐`],[`Administrative`,`๐`],[`Arts and Design`,`๐จ`],[`Business Development`,`๐`],[`Community and Social Services`,`๐ซ`],[`Consulting`,`๐ผ`],[`Education`,`๐`],[`Engineering`,`๐ ๏ธ`],[`Entrepreneurship`,`๐`],[`Finance`,`๐ฐ`],[`Healthcare Services`,`๐ฅ`],[`Human Resources`,`๐ฅ`],[`Information Technology`,`๐ป`],[`Legal`,`โ๏ธ`],[`Marketing`,`๐ฃ`],[`Media and Communication`,`๐บ`],[`Military and Protective Services`,`๐ก๏ธ`],[`Operations`,`โ๏ธ`],[`Product Management`,`๐ฆ`],[`Program and Project Management`,`๐
`],[`Purchasing`,`๐`],[`Quality Assurance`,`โ
`],[`Real Estate`,`๐๏ธ`],[`Research`,`๐ฌ`],[`Sales`,`๐ธ`],[`Customer Success and Support`,`๐ง`]]),Pe=be([[`Public Company`,`๐`],[`Privately Held`,`๐`],[`Non Profit`,`๐`],[`Educational Institution`,`๐`],[`Partnership`,`๐ค`],[`Self Employed`,`๐ค`],[`Self Owned`,`๐ชช`],[`Government Agency`,`๐๏ธ`]]),Fe=ye([`0-10%`,`10-20%`,`20-50%`,`50-70%`,`70%+`]);ye([`0-10%`,`10-20%`,`20-50%`,`50-70%`,`70%+`]);const Ie=xe([[`angel`,`Angel`,`๐`],[`convertible_note`,`Convertible Note`,`๐`],[`corporate_round`,`Corporate Round`,`๐ข`],[`debt_financing`,`Debt Financing`,`๐ณ`],[`equity_crowdfunding`,`Equity Crowdfunding`,`๐`],[`grant`,`Grant`,`๐`],[`initial_coin_offering`,`Initial Coin Offering`,`๐ช`],[`non_equity_assistance`,`Non Equity Assistance`,`๐คฒ`],[`post_ipo_debt`,`Post IPO Debt`,`๐๏ธ`],[`post_ipo_equity`,`Post IPO Equity`,`๐`],[`post_ipo_secondary`,`Post IPO Secondary`,`๐`],[`pre_seed`,`Pre Seed`,`๐ฑ`],[`private_equity`,`Private Equity`,`๐ผ`],[`product_crowdfunding`,`Product Crowdfunding`,`๐ฆ`],[`secondary_market`,`Secondary Market`,`๐`],[`seed`,`Seed`,`๐ฟ`],[`series_a`,`Series A`,`1๏ธโฃ`],[`series_b`,`Series B`,`2๏ธโฃ`],[`series_c`,`Series C`,`3๏ธโฃ`],[`series_d`,`Series D`,`4๏ธโฃ`],[`series_e`,`Series E`,`5๏ธโฃ`],[`series_f`,`Series F`,`6๏ธโฃ`],[`series_g`,`Series G`,`7๏ธโฃ`],[`series_h`,`Series H`,`8๏ธโฃ`],[`series_i`,`Series I`,`9๏ธโฃ`],[`series_j`,`Series J`,`๐`],[`series_unknown`,`Series Unknown`,`โ`],[`undisclosed`,`Undisclosed`,`๐ค`]]),Le=e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})),eee=Le([[`Engineering`,`๐ ๏ธ`],[`Sales`,`๐ธ`],[`Consulting`,`๐ผ`],[`Marketing`,`๐ฃ`],[`Operations`,`โ๏ธ`],[`Finance`,`๐ฐ`],[`Research`,`๐ฌ`],[`Customer Success and Support`,`๐ง`],[`Arts and Design`,`๐จ`],[`Human Resources`,`๐ฅ`],[`Legal`,`โ๏ธ`],[`Product Management`,`๐ฆ`]]),tee=Le([[`Remote`,`๐๏ธ`],[`Hybrid`,`๐`],[`On-site`,`๐ข`]]),Re=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),ze=Le([[`Public Company`,`๐`],[`Privately Held`,`๐`],[`Nonprofit`,`๐`],[`Educational Institution`,`๐`],[`Partnership`,`๐ค`],[`Self-Employed`,`๐ค`],[`Sole Proprietorship`,`๐ชช`],[`Government Agency`,`๐๏ธ`]]),Be=Le([[`PRIVATE`,`๐`],[`NASDAQ`,`๐`],[`NYSE`,`๐`],[`NYSEMKT`,`๐`],[`BSE`,`๐`],[`NSE`,`๐`],[`TYO`,`๐`],[`SZSE`,`๐`],[`SEHK`,`๐`],[`NEEQ`,`๐`],[`LSE`,`๐`],[`ASX`,`๐`],[`TPE`,`๐`],[`TSEC`,`๐`],[`EPA`,`๐`],[`TSX`,`๐`],[`KLSE`,`๐`],[`FRA`,`๐`],[`FWB`,`๐`],[`BKK`,`๐`],[`STO`,`๐`],[`SGX`,`๐`],[`TLV`,`๐`],[`WSE`,`๐`],[`IST`,`๐`],[`KRX`,`๐`],[`BVMF`,`๐`],[`ETR`,`๐`],[`CNSX`,`๐`],[`TADAWUL`,`๐`],[`HOSE`,`๐`],[`HNX`,`๐`],[`OSE`,`๐`],[`COL`,`๐`],[`AMS`,`๐`],[`BMV`,`๐`],[`PSE`,`๐`],[`EGX`,`๐`],[`CPH`,`๐`],[`KSE`,`๐`],[`NZE`,`๐`],[`MOEX`,`๐`],[`NIG`,`๐`],[`ATH`,`๐`],[`ADX`,`๐`],[`PSX`,`๐`],[`VIE`,`๐`],[`CAS`,`๐`],[`PFTS`,`๐`],[`BCBA`,`๐`],[`SIX`,`๐`],[`DFM`,`๐`],[`NGM`,`๐`],[`PEX`,`๐`],[`JSEJAM`,`๐`],[`GHA`,`๐`],[`ICE`,`๐`],[`NASDAQVILNIUS`,`๐`],[`DUS`,`๐`],[`TTSE`,`๐`],[`STU`,`๐`],[`LUXSE`,`๐`],[`LUSE`,`๐`],[`SEM`,`๐`],[`MAL`,`๐`],[`XBER`,`๐`],[`TSEIR`,`๐`],[`TISE`,`๐`],[`NPEX`,`๐`]]),Ve=Le([[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-1,000`,`๐ฌ`],[`1,000+`,`๐๏ธ`]]),He=Re([[`AFG`,`Afghanistan`,`๐ฆ๐ซ`],[`ALB`,`Albania`,`๐ฆ๐ฑ`],[`DZA`,`Algeria`,`๐ฉ๐ฟ`],[`AND`,`Andorra`,`๐ฆ๐ฉ`],[`AGO`,`Angola`,`๐ฆ๐ด`],[`ATG`,`Antigua and Barbuda`,`๐ฆ๐ฌ`],[`ARG`,`Argentina`,`๐ฆ๐ท`],[`ARM`,`Armenia`,`๐ฆ๐ฒ`],[`AUS`,`Australia`,`๐ฆ๐บ`],[`AUT`,`Austria`,`๐ฆ๐น`],[`AZE`,`Azerbaijan`,`๐ฆ๐ฟ`],[`BHS`,`Bahamas (the)`,`๐ง๐ธ`],[`BHR`,`Bahrain`,`๐ง๐ญ`],[`BGD`,`Bangladesh`,`๐ง๐ฉ`],[`BRB`,`Barbados`,`๐ง๐ง`],[`BLR`,`Belarus`,`๐ง๐พ`],[`BEL`,`Belgium`,`๐ง๐ช`],[`BLZ`,`Belize`,`๐ง๐ฟ`],[`BEN`,`Benin`,`๐ง๐ฏ`],[`BTN`,`Bhutan`,`๐ง๐น`],[`BOL`,`Bolivia (Plurinational State of)`,`๐ง๐ด`],[`BIH`,`Bosnia and Herzegovina`,`๐ง๐ฆ`],[`BWA`,`Botswana`,`๐ง๐ผ`],[`BRA`,`Brazil`,`๐ง๐ท`],[`BRN`,`Brunei Darussalam`,`๐ง๐ณ`],[`BGR`,`Bulgaria`,`๐ง๐ฌ`],[`BFA`,`Burkina Faso`,`๐ง๐ซ`],[`BDI`,`Burundi`,`๐ง๐ฎ`],[`CPV`,`Cabo Verde`,`๐จ๐ป`],[`KHM`,`Cambodia`,`๐ฐ๐ญ`],[`CMR`,`Cameroon`,`๐จ๐ฒ`],[`CAN`,`Canada`,`๐จ๐ฆ`],[`CAF`,`Central African Republic (the)`,`๐จ๐ซ`],[`TCD`,`Chad`,`๐น๐ฉ`],[`CHL`,`Chile`,`๐จ๐ฑ`],[`CHN`,`China`,`๐จ๐ณ`],[`COL`,`Colombia`,`๐จ๐ด`],[`COM`,`Comoros (the)`,`๐ฐ๐ฒ`],[`COG`,`Congo (the)`,`๐จ๐ฌ`],[`COK`,`Cook Islands (the) **`,`๐`],[`COK`,`Cook Islands (the) **`,`๐จ๐ฐ`],[`CRI`,`Costa Rica`,`๐จ๐ท`],[`HRV`,`Croatia`,`๐ญ๐ท`],[`CUB`,`Cuba`,`๐จ๐บ`],[`CYP`,`Cyprus`,`๐จ๐พ`],[`CZE`,`Czech Republic (the)`,`๐จ๐ฟ`],[`CIV`,`Cรดte d'Ivoire`,`๐จ๐ฎ`],[`PRK`,`Democratic People's Republic of Korea (the)`,`๐ฐ๐ต`],[`COD`,`Democratic Republic of the Congo (the)`,`๐จ๐ฉ`],[`DNK`,`Denmark`,`๐ฉ๐ฐ`],[`DJI`,`Djibouti`,`๐ฉ๐ฏ`],[`DMA`,`Dominica`,`๐ฉ๐ฒ`],[`DOM`,`Dominican Republic (the)`,`๐ฉ๐ด`],[`ECU`,`Ecuador`,`๐ช๐จ`],[`EGY`,`Egypt`,`๐ช๐ฌ`],[`SLV`,`El Salvador`,`๐ธ๐ป`],[`GNQ`,`Equatorial Guinea`,`๐ฌ๐ถ`],[`ERI`,`Eritrea`,`๐ช๐ท`],[`EST`,`Estonia`,`๐ช๐ช`],[`ETH`,`Ethiopia`,`๐ช๐น`],[`FJI`,`Fiji`,`๐ซ๐ฏ`],[`FIN`,`Finland`,`๐ซ๐ฎ`],[`FRA`,`France`,`๐ซ๐ท`],[`GAB`,`Gabon`,`๐ฌ๐ฆ`],[`GMB`,`Gambia (the)`,`๐ฌ๐ฒ`],[`GEO`,`Georgia`,`๐ฌ๐ช`],[`DEU`,`Germany`,`๐ฉ๐ช`],[`GHA`,`Ghana`,`๐ฌ๐ญ`],[`GRC`,`Greece`,`๐ฌ๐ท`],[`GRD`,`Grenada`,`๐ฌ๐ฉ`],[`GTM`,`Guatemala`,`๐ฌ๐น`],[`GIN`,`Guinea`,`๐ฌ๐ณ`],[`GNB`,`Guinea-Bissau`,`๐ฌ๐ผ`],[`GUY`,`Guyana`,`๐ฌ๐พ`],[`HTI`,`Haiti`,`๐ญ๐น`],[`VAT`,`Holy See (the) *`,`๐ป๐ฆ`],[`HND`,`Honduras`,`๐ญ๐ณ`],[`HUN`,`Hungary`,`๐ญ๐บ`],[`ISL`,`Iceland`,`๐ฎ๐ธ`],[`IND`,`India`,`๐ฎ๐ณ`],[`IDN`,`Indonesia`,`๐ฎ๐ฉ`],[`IRN`,`Iran (Islamic Republic of)`,`๐ฎ๐ท`],[`IRQ`,`Iraq`,`๐ฎ๐ถ`],[`IRL`,`Ireland`,`๐ฎ๐ช`],[`ISR`,`Israel`,`๐ฎ๐ฑ`],[`ITA`,`Italy`,`๐ฎ๐น`],[`JAM`,`Jamaica`,`๐ฏ๐ฒ`],[`JPN`,`Japan`,`๐ฏ๐ต`],[`JOR`,`Jordan`,`๐ฏ๐ด`],[`KAZ`,`Kazakhstan`,`๐ฐ๐ฟ`],[`KEN`,`Kenya`,`๐ฐ๐ช`],[`KIR`,`Kiribati`,`๐ฐ๐ฎ`],[`KWT`,`Kuwait`,`๐ฐ๐ผ`],[`KGZ`,`Kyrgyzstan`,`๐ฐ๐ฌ`],[`LAO`,`Lao People's Democratic Republic (the)`,`๐ฑ๐ฆ`],[`LVA`,`Latvia`,`๐ฑ๐ป`],[`LBN`,`Lebanon`,`๐ฑ๐ง`],[`LSO`,`Lesotho`,`๐ฑ๐ธ`],[`LBR`,`Liberia`,`๐ฑ๐ท`],[`LBY`,`Libya`,`๐ฑ๐พ`],[`LIE`,`Liechtenstein`,`๐ฑ๐ฎ`],[`LTU`,`Lithuania`,`๐ฑ๐น`],[`LUX`,`Luxembourg`,`๐ฑ๐บ`],[`MDG`,`Madagascar`,`๐ฒ๐ฌ`],[`MWI`,`Malawi`,`๐ฒ๐ผ`],[`MYS`,`Malaysia`,`๐ฒ๐พ`],[`MDV`,`Maldives`,`๐ฒ๐ป`],[`MLI`,`Mali`,`๐ฒ๐ฑ`],[`MLT`,`Malta`,`๐ฒ๐น`],[`MHL`,`Marshall Islands (the)`,`๐ฒ๐ญ`],[`MRT`,`Mauritania`,`๐ฒ๐ท`],[`MUS`,`Mauritius`,`๐ฒ๐บ`],[`MEX`,`Mexico`,`๐ฒ๐ฝ`],[`FSM`,`Micronesia (Federated States of)`,`๐ซ๐ฒ`],[`MCO`,`Monaco`,`๐ฒ๐จ`],[`MNG`,`Mongolia`,`๐ฒ๐ณ`],[`MNE`,`Montenegro`,`๐ฒ๐ช`],[`MAR`,`Morocco`,`๐ฒ๐ฆ`],[`MOZ`,`Mozambique`,`๐ฒ๐ฟ`],[`MMR`,`Myanmar`,`๐ฒ๐ฒ`],[`NAM`,`Namibia`,`๐ณ๐ฆ`],[`NRU`,`Nauru`,`๐ณ๐ท`],[`NPL`,`Nepal`,`๐ณ๐ต`],[`NLD`,`Netherlands (the)`,`๐ณ๐ฑ`],[`NZL`,`New Zealand`,`๐ณ๐ฟ`],[`NIC`,`Nicaragua`,`๐ณ๐ฎ`],[`NER`,`Niger (the)`,`๐ณ๐ช`],[`NGA`,`Nigeria`,`๐ณ๐ฌ`],[`NIU`,`Niue **`,`๐ณ๐บ`],[`NIU`,`Niue **`,`๐`],[`NOR`,`Norway`,`๐ณ๐ด`],[`OMN`,`Oman`,`๐ด๐ฒ`],[`PAK`,`Pakistan`,`๐ต๐ฐ`],[`PLW`,`Palau`,`๐ต๐ผ`],[`PAN`,`Panama`,`๐ต๐ฆ`],[`PNG`,`Papua New Guinea`,`๐ต๐ฌ`],[`PRY`,`Paraguay`,`๐ต๐พ`],[`PER`,`Peru`,`๐ต๐ช`],[`PHL`,`Philippines (the)`,`๐ต๐ญ`],[`POL`,`Poland`,`๐ต๐ฑ`],[`PRT`,`Portugal`,`๐ต๐น`],[`QAT`,`Qatar`,`๐ถ๐ฆ`],[`MDA`,`Republic of Moldova (the)`,`๐ฒ๐ฉ`],[`ROU`,`Romania`,`๐ท๐ด`],[`RUS`,`Russian Federation (the)`,`๐ท๐บ`],[`RWA`,`Rwanda`,`๐ท๐ผ`],[`KNA`,`Saint Kitts and Nevis`,`๐ฐ๐ณ`],[`LCA`,`Saint Lucia`,`๐ฑ๐จ`],[`VCT`,`Saint Vincent and the Grenadines`,`๐ป๐จ`],[`WSM`,`Samoa`,`๐ผ๐ธ`],[`SMR`,`San Marino`,`๐ธ๐ฒ`],[`STP`,`Sao Tome and Principe`,`๐ธ๐น`],[`SAU`,`Saudi Arabia`,`๐ธ๐ฆ`],[`SEN`,`Senegal`,`๐ธ๐ณ`],[`SRB`,`Serbia`,`๐ท๐ธ`],[`SYC`,`Seychelles`,`๐ธ๐จ`],[`SLE`,`Sierra Leone`,`๐ธ๐ฑ`],[`SGP`,`Singapore`,`๐ธ๐ฌ`],[`SVK`,`Slovakia`,`๐ธ๐ฐ`],[`SVN`,`Slovenia`,`๐ธ๐ฎ`],[`SLB`,`Solomon Islands`,`๐ธ๐ง`],[`SOM`,`Somalia`,`๐ธ๐ด`],[`ZAF`,`South Africa`,`๐ฟ๐ฆ`],[`KOR`,`South Korea`,`๐ฐ๐ท`],[`SSD`,`South Sudan`,`๐ธ๐ธ`],[`ESP`,`Spain`,`๐ช๐ธ`],[`LKA`,`Sri Lanka`,`๐ฑ๐ฐ`],[`PSE`,`State of Palestine *`,`๐ต๐ธ`],[`SDN`,`Sudan (the)`,`๐ธ๐ฉ`],[`SUR`,`Suriname`,`๐ธ๐ท`],[`SWE`,`Sweden`,`๐ธ๐ช`],[`CHE`,`Switzerland`,`๐จ๐ญ`],[`SYR`,`Syrian Arab Republic`,`๐ธ๐พ`],[`TJK`,`Tajikistan`,`๐น๐ฏ`],[`THA`,`Thailand`,`๐น๐ญ`],[`TLS`,`Timor-Leste`,`๐น๐ฑ`],[`TGO`,`Togo`,`๐น๐ฌ`],[`TON`,`Tonga`,`๐น๐ด`],[`TTO`,`Trinidad and Tobago`,`๐น๐น`],[`TUN`,`Tunisia`,`๐น๐ณ`],[`TUR`,`Turkey`,`๐น๐ท`],[`TKM`,`Turkmenistan`,`๐น๐ฒ`],[`TUV`,`Tuvalu`,`๐น๐ป`],[`UGA`,`Uganda`,`๐บ๐ฌ`],[`UKR`,`Ukraine`,`๐บ๐ฆ`],[`ARE`,`United Arab Emirates (the)`,`๐ฆ๐ช`],[`GBR`,`United Kingdom of Great Britain and Northern Ireland (the)`,`๐ฌ๐ง`],[`TZA`,`United Republic of Tanzania (the)`,`๐น๐ฟ`],[`USA`,`United States of America (the)`,`๐บ๐ธ`],[`URY`,`Uruguay`,`๐บ๐พ`],[`UZB`,`Uzbekistan`,`๐บ๐ฟ`],[`VUT`,`Vanuatu`,`๐ป๐บ`],[`VEN`,`Venezuela (Bolivarian Republic of)`,`๐ป๐ช`],[`VNM`,`Viet Nam`,`๐ป๐ณ`],[`YEM`,`Yemen`,`๐พ๐ช`],[`ZMB`,`Zambia`,`๐ฟ๐ฒ`],[`ZWE`,`Zimbabwe`,`๐ฟ๐ผ`],[`MKD`,`the former Yugoslav Republic of Macedonia`,`๐ฒ๐ฐ`]]),Ue=[{value:`https://techcrunch.com/feed/`,label:`https://techcrunch.com/feed/`,widgets:{emoji:{char:`๐ฐ`}}},{value:`https://news.crunchbase.com/feed/`,label:`https://news.crunchbase.com/feed/`,widgets:{emoji:{char:`๐ฐ`}}},{value:`https://www.producthunt.com/feed`,label:`https://www.producthunt.com/feed`,widgets:{emoji:{char:`๐`}}},{value:`https://www.lennysnewsletter.com/feed`,label:`https://www.lennysnewsletter.com/feed`,widgets:{emoji:{char:`โ๏ธ`}}},{value:`https://www.saastr.com/feed/`,label:`https://www.saastr.com/feed/`,widgets:{emoji:{char:`๐`}}},{value:`https://www.gong.io/blog/rss.xml`,label:`https://www.gong.io/blog/rss.xml`,widgets:{emoji:{char:`๐ฏ`}}},{value:`https://blog.hubspot.com/sales/rss.xml`,label:`https://blog.hubspot.com/sales/rss.xml`,widgets:{emoji:{char:`๐ `}}},{value:`https://community.n8n.io/latest.rss`,label:`https://community.n8n.io/latest.rss`,widgets:{emoji:{char:`๐`}}},{value:`https://community.retool.com/latest.rss`,label:`https://community.retool.com/latest.rss`,widgets:{emoji:{char:`๐ `}}},{value:`https://forum.bubble.io/latest.rss`,label:`https://forum.bubble.io/latest.rss`,widgets:{emoji:{char:`๐ซง`}}},{value:`https://meta.discourse.org/latest.rss`,label:`https://meta.discourse.org/latest.rss`,widgets:{emoji:{char:`๐ฌ`}}},{value:`https://news.ycombinator.com/rss`,label:`https://news.ycombinator.com/rss`,widgets:{emoji:{char:`๐ง`}}},{value:`https://blog.cloudflare.com/rss/`,label:`https://blog.cloudflare.com/rss/`,widgets:{emoji:{char:`โ๏ธ`}}},{value:`https://github.com/OWNER/REPO/releases.atom`,label:`https://github.com/OWNER/REPO/releases.atom`,widgets:{emoji:{char:`๐`}}}],We=(e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})))([[`Abrasives and Nonmetallic Minerals Manufacturing`,`๐ชจ`],[`Accessible Architecture and Design`,`โฟ`],[`Accessible Hardware Manufacturing`,`โฟ`],[`Accommodation and Food Services`,`๐จ`],[`Accounting`,`๐`],[`Administration of Justice`,`โ๏ธ`],[`Administrative and Support Services`,`๐`],[`Advertising Services`,`๐ฃ`],[`Agriculture`,`๐พ`],[`Air, Water, and Waste Program Management`,`โป๏ธ`],[`Airlines and Aviation`,`โ๏ธ`],[`Alternative Dispute Resolution`,`๐ค`],[`Alternative Fuel Vehicle Manufacturing`,`๐`],[`Alternative Medicine`,`๐ฟ`],[`Ambulance Services`,`๐`],[`Amusement Parks and Arcades`,`๐ข`],[`Animal Feed Manufacturing`,`๐`],[`Animation`,`๐๏ธ`],[`Animation and Post-production`,`๐ฌ`],[`Apparel & Fashion`,`๐`],[`Apparel Manufacturing`,`๐งต`],[`Appliances, Electrical, and Electronics Manufacturing`,`๐`],[`Architectural and Structural Metal Manufacturing`,`๐๏ธ`],[`Architecture and Planning`,`๐`],[`Armed Forces`,`๐ช`],[`Artificial Rubber and Synthetic Fiber Manufacturing`,`๐งช`],[`Artists and Writers`,`๐จ`],[`Arts`,`๐จ`],[`Arts & Crafts`,`๐๏ธ`],[`Audio and Video Equipment Manufacturing`,`๐ง`],[`Automation Machinery Manufacturing`,`๐ค`],[`Automotive`,`๐`],[`Aviation & Aerospace`,`๐`],[`Aviation and Aerospace Component Manufacturing`,`๐ฉ๏ธ`],[`Baked Goods Manufacturing`,`๐ฅ`],[`Banking`,`๐ฆ`],[`Bars, Taverns, and Nightclubs`,`๐ป`],[`Bed-and-Breakfasts, Hostels, Homestays`,`๐๏ธ`],[`Beverage Manufacturing`,`๐ฅค`],[`Biomass Electric Power Generation`,`๐ฑ`],[`Biotechnology`,`๐งฌ`],[`Biotechnology Research`,`๐ฌ`],[`Blockchain Services`,`โ๏ธ`],[`Boilers, Tanks, and Shipping Container Manufacturing`,`๐ข๏ธ`],[`Book and Periodical Publishing`,`๐`],[`Book Publishing`,`๐`],[`Breweries`,`๐บ`],[`Broadcast Media Production and Distribution`,`๐ก`],[`Building Construction`,`๐๏ธ`],[`Building Equipment Contractors`,`๐ง`],[`Building Finishing Contractors`,`๐ช`],[`Building Materials`,`๐งฑ`],[`Building Structure and Exterior Contractors`,`๐๏ธ`],[`Business Consulting and Services`,`๐ผ`],[`Business Content`,`๐`],[`Business Intelligence Platforms`,`๐`],[`Business Intelligence-platforms`,`๐`],[`Business Supplies & Equipment`,`๐`],[`Cable and Satellite Programming`,`๐บ`],[`Callcenters`,`โ๏ธ`],[`Capital Markets`,`๐น`],[`Caterer`,`๐ฝ๏ธ`],[`Catering`,`๐ด`],[`Chemical Manufacturing`,`๐งช`],[`Chemical Raw Materials Manufacturing`,`โ๏ธ`],[`Child Day Care Services`,`๐ถ`],[`Circuses and Magic Shows`,`๐ช`],[`Civic and Social Organizations`,`๐ค`],[`Civil Engineering`,`๐`],[`Claims Adjusting, Actuarial Services`,`๐`],[`Clay and Refractory Products Manufacturing`,`๐บ`],[`Climate Data and Analytics`,`๐ก๏ธ`],[`Climate Technology Product Manufacturing`,`๐`],[`Coal Mining`,`โ๏ธ`],[`Collection Agencies`,`๐ผ`],[`Commercial and Industrial Equipment Rental`,`๐๏ธ`],[`Commercial and Industrial Machinery Maintenance`,`๐ง`],[`Commercial and Service Industry Machinery Manufacturing`,`๐ญ`],[`Commercial Real Estate`,`๐ข`],[`Communications Equipment Manufacturing`,`๐ก`],[`Community Development and Urban Planning`,`๐๏ธ`],[`Community Services`,`๐คฒ`],[`Computer and Network Security`,`๐`],[`Computer Games`,`๐ฎ`],[`Computer Hardware`,`๐ฅ๏ธ`],[`Computer Hardware Manufacturing`,`๐ป`],[`Computer Networking`,`๐`],[`Computer Networking Products`,`๐`],[`Computerhardware`,`๐ฅ๏ธ`],[`Computers and Electronics Manufacturing`,`๐ป`],[`Conservation Programs`,`๐ณ`],[`Construction`,`๐๏ธ`],[`Construction Hardware Manufacturing`,`๐จ`],[`Consulting outsourcing en offshoring`,`๐ผ`],[`Consumer Electronics`,`๐ฑ`],[`Consumer Goods`,`๐๏ธ`],[`Consumer Goods Rental`,`๐`],[`Consumer Services`,`๐๏ธ`],[`Correctional Institutions`,`๐`],[`Cosmetics`,`๐`],[`Cosmetology and Barber Schools`,`๐`],[`Courts of Law`,`โ๏ธ`],[`Credit Intermediation`,`๐ณ`],[`Cutlery and Handtool Manufacturing`,`๐ช`],[`Dairy`,`๐ฅ`],[`Dairy Product Manufacturing`,`๐ง`],[`Dance Companies`,`๐`],[`Data Infrastructure and Analytics`,`๐`],[`Data Security Software Products`,`๐`],[`Defense & Space`,`๐ก๏ธ`],[`Defense and Space Manufacturing`,`๐`],[`Dentists`,`๐ฆท`],[`Design`,`๐จ`],[`Design Services`,`โ๏ธ`],[`Desktop Computing Software Products`,`๐ฅ๏ธ`],[`Detailhandel meubilair en interieur`,`๐๏ธ`],[`Digital Accessibility Services`,`โฟ`],[`Distilleries`,`๐ฅ`],[`E-learning`,`๐`],[`E-Learning`,`๐`],[`E-Learning Providers`,`๐ป`],[`Economic Programs`,`๐`],[`Education`,`๐`],[`Education Administration Programs`,`๐ซ`],[`Education Management`,`๐`],[`Electric Lighting Equipment Manufacturing`,`๐ก`],[`Electric Power Generation`,`โก`],[`Electric Power Transmission, Control, and Distribution`,`๐`],[`Electrical Equipment Manufacturing`,`โก`],[`Electronic and Precision Equipment Maintenance`,`๐ง`],[`Embedded Software Products`,`๐ ๏ธ`],[`Emergency and Relief Services`,`๐จ`],[`Engineering Services`,`โ๏ธ`],[`Engines and Power Transmission Equipment Manufacturing`,`โ๏ธ`],[`Enquรยชteurs dรขโฌโขassurances et services actuariels`,`๐`],[`Enregistrement sonore`,`๐๏ธ`],[`Entertainment`,`๐ญ`],[`Entertainment Providers`,`๐ฌ`],[`Environmental Quality Programs`,`๐ฟ`],[`Environmental Services`,`โป๏ธ`],[`Equipment Rental Services`,`๐๏ธ`],[`Events Services`,`๐`],[`Executive Offices`,`๐ข`],[`Executive Search Services`,`๐`],[`Fabricated Metal Products`,`๐ฉ`],[`Facilities Services`,`๐ข`],[`Family Planning Centers`,`๐จโ๐ฉโ๐ง`],[`Farming`,`๐`],[`Farming, Ranching, Forestry`,`๐พ`],[`Fashion Accessories Manufacturing`,`๐`],[`Financial Services`,`๐ฐ`],[`Fine Art`,`๐ผ๏ธ`],[`Fine Arts Schools`,`๐จ`],[`Fire Protection`,`๐`],[`Fisheries`,`๐`],[`Flight Training`,`๐ฉ๏ธ`],[`Food & Beverages`,`๐ฝ๏ธ`],[`Food and Beverage Manufacturing`,`๐ฅซ`],[`Food and Beverage Retail`,`๐`],[`Food and Beverage Services`,`๐ด`],[`Food Production`,`๐ฑ`],[`Footwear and Leather Goods Repair`,`๐`],[`Footwear Manufacturing`,`๐`],[`Forestry and Logging`,`๐ฒ`],[`Fossil Fuel Electric Power Generation`,`๐ข๏ธ`],[`Freight and Package Transportation`,`๐ฆ`],[`Fruit and Vegetable Preserves Manufacturing`,`๐ฅซ`],[`Fuel Cell Manufacturing`,`๐`],[`Fundraising`,`๐ต`],[`Funds and Trusts`,`๐ฐ`],[`Furniture`,`๐๏ธ`],[`Furniture and Home Furnishings Manufacturing`,`๐ช`],[`Gambling Facilities and Casinos`,`๐ฐ`],[`Geothermal Electric Power Generation`,`๐`],[`Glass Product Manufacturing`,`๐ช`],[`Glass, Ceramics and Concrete Manufacturing`,`๐บ`],[`Golf Courses and Country Clubs`,`โณ`],[`Government Administration`,`๐๏ธ`],[`Government Relations`,`๐๏ธ`],[`Government Relations Services`,`๐ค`],[`Graphic Design`,`๐จ`],[`Groothandel machines`,`๐ญ`],[`Ground Passenger Transportation`,`๐`],[`Health and Human Services`,`๐ฅ`],[`Health, Wellness & Fitness`,`๐ช`],[`Higher Education`,`๐`],[`Highway, Street, and Bridge Construction`,`๐ฃ๏ธ`],[`Historical Sites`,`๐๏ธ`],[`Holding Companies`,`๐ข`],[`Home Health Care Services`,`๐ `],[`Hospitality`,`๐๏ธ`],[`Hospitals`,`๐ฅ`],[`Hospitals and Health Care`,`โ๏ธ`],[`Hotels and Motels`,`๐จ`],[`Household and Institutional Furniture Manufacturing`,`๐๏ธ`],[`Household Appliance Manufacturing`,`๐งบ`],[`Household Services`,`๐ก`],[`Housing and Community Development`,`๐๏ธ`],[`Housing Programs`,`๐ `],[`Human resources`,`๐ฅ`],[`Human Resources`,`๐ฅ`],[`Human Resources Services`,`๐`],[`HVAC and Refrigeration Equipment Manufacturing`,`โ๏ธ`],[`Hydroelectric Power Generation`,`๐ง`],[`Import & Export`,`๐ข`],[`Import en export`,`๐ข`],[`Incassobureaus`,`๐ผ`],[`Individual and Family Services`,`๐จโ๐ฉโ๐งโ๐ฆ`],[`Industrial Automation`,`๐ค`],[`Industrial Machinery Manufacturing`,`๐ญ`],[`Industries extractives`,`โ๏ธ`],[`Industry Associations`,`๐๏ธ`],[`Information Services`,`๐ก`],[`Information Technology & Services`,`๐ป`],[`Insurance`,`๐ก๏ธ`],[`Insurance Agencies and Brokerages`,`๐`],[`Insurance and Employee Benefit Funds`,`๐ฆ`],[`Insurance Carriers`,`๐ก๏ธ`],[`Interior Design`,`๐๏ธ`],[`International Affairs`,`๐`],[`International Trade and Development`,`๐`],[`Internet Marketplace Platforms`,`๐`],[`Internet News`,`๐ฐ`],[`Internet Publishing`,`๐ฐ`],[`Internet-Publishing`,`๐ฐ`],[`Internetmedia`,`๐บ`],[`Interurban and Rural Bus Services`,`๐`],[`Investment Advice`,`๐`],[`Investment Banking`,`๐ฆ`],[`Investment Management`,`๐ผ`],[`IT Services and IT Consulting`,`๐ป`],[`IT System Custom Software Development`,`๐จโ๐ป`],[`IT System Data Services`,`๐พ`],[`IT System Design Services`,`๐ฅ๏ธ`],[`IT System Installation and Disposal`,`๐ง`],[`IT System Operations and Maintenance`,`๐ ๏ธ`],[`IT System Testing and Evaluation`,`๐งช`],[`IT System Training and Support`,`๐ง`],[`IT-services en consultancy`,`๐ป`],[`Janitorial Services`,`๐งน`],[`Landscaping Services`,`๐ฟ`],[`Language Schools`,`๐ฃ๏ธ`],[`Law Enforcement`,`๐ฎ`],[`Law Practice`,`โ๏ธ`],[`Legal Services`,`๐`],[`Legislative Offices`,`๐๏ธ`],[`Libraries`,`๐`],[`LKW-Transport`,`๐`],[`Loan Brokers`,`๐ณ`],[`Luxury Goods & Jewelry`,`๐`],[`Machinery Manufacturing`,`๐ญ`],[`Magnetic and Optical Media Manufacturing`,`๐ฟ`],[`Manufacturing`,`๐ญ`],[`Maritime`,`โ`],[`Maritime Transportation`,`๐ข`],[`Market Research`,`๐`],[`Marketing Services`,`๐ฃ`],[`Maroquinerie`,`๐`],[`Mattress and Blinds Manufacturing`,`๐๏ธ`],[`Measuring and Control Instrument Manufacturing`,`๐`],[`Meat Products Manufacturing`,`๐ฅฉ`],[`Mechanical Or Industrial Engineering`,`โ๏ธ`],[`Media and Telecommunications`,`๐ก`],[`Media Production`,`๐ฌ`],[`Medical and Diagnostic Laboratories`,`๐ฌ`],[`Medical Device`,`๐ฉบ`],[`Medical Equipment Manufacturing`,`๐ฉป`],[`Medical Practices`,`โ๏ธ`],[`Mental Health Care`,`๐ง `],[`Metal Ore Mining`,`โ๏ธ`],[`Metal Treatments`,`๐ฉ`],[`Metal Valve, Ball, and Roller Manufacturing`,`โ๏ธ`],[`Military and International Affairs`,`๐ช`],[`Mining`,`โ๏ธ`],[`Mobile Computing Software Products`,`๐ฑ`],[`Mobile Food Services`,`๐`],[`Mobile Gaming Apps`,`๐ฎ`],[`Motor Vehicle Manufacturing`,`๐`],[`Movies and Sound Recording`,`๐ฌ`],[`Movies, Videos, and Sound`,`๐ฅ`],[`Museums`,`๐๏ธ`],[`Museums, Historical Sites, and Zoos`,`๐ฆ`],[`Music`,`๐ต`],[`Musicians`,`๐ธ`],[`Nanotechnology Research`,`๐ฌ`],[`Natural Gas Distribution`,`๐ฅ`],[`Natural Gas Extraction`,`โฝ`],[`Newspaper Publishing`,`๐ฐ`],[`Non-profit Organization Management`,`๐`],[`Non-profit Organizations`,`๐ค`],[`Nonmetallic Mineral Mining`,`๐ชจ`],[`Nonresidential Building Construction`,`๐ข`],[`Nuclear Electric Power Generation`,`โข๏ธ`],[`Nursing Homes and Residential Care Facilities`,`๐ฅ`],[`Office Administration`,`๐๏ธ`],[`Office Furniture and Fixtures Manufacturing`,`๐ช`],[`Oil and Gas`,`๐ข๏ธ`],[`Oil Extraction`,`โฝ`],[`Oil, Gas, and Mining`,`๐ข๏ธ`],[`Online and Mail Order Retail`,`๐ฆ`],[`Online Audio and Video Media`,`๐ฅ`],[`Online media`,`๐บ`],[`Online Media`,`๐บ`],[`Operations Consulting`,`๐ผ`],[`Operations management consulting`,`๐ผ`],[`Optometrists`,`๐`],[`Outpatient Care Centers`,`๐ฅ`],[`Outsourcing and Offshoring Consulting`,`๐`],[`Outsourcing/Offshoring`,`๐`],[`Packaging & Containers`,`๐ฆ`],[`Packaging and Containers Manufacturing`,`๐ฆ`],[`Paint, Coating, and Adhesive Manufacturing`,`๐จ`],[`Paper & Forest Products`,`๐`],[`Paper and Forest Product Manufacturing`,`๐ฒ`],[`Pension Funds`,`๐ฐ`],[`Performing Arts`,`๐ญ`],[`Performing Arts and Spectator Sports`,`๐ญ`],[`Periodical Publishing`,`๐`],[`Personal and Laundry Services`,`๐งบ`],[`Personal Care Product Manufacturing`,`๐งด`],[`Personal Care Services`,`๐`],[`Pet Services`,`๐พ`],[`Pharmaceutical Manufacturing`,`๐`],[`Philanthropic Fundraising Services`,`๐`],[`Philanthropy`,`โค๏ธ`],[`Photography`,`๐ท`],[`Physical, Occupational and Speech Therapists`,`๐ฉบ`],[`Physicians`,`๐จโโ๏ธ`],[`Pipeline Transportation`,`๐ฐ`],[`Plastics and Rubber Product Manufacturing`,`โป๏ธ`],[`Plastics Manufacturing`,`๐งด`],[`Political Organizations`,`๐ณ๏ธ`],[`Postal Services`,`๐ฎ`],[`Primary and Secondary Education`,`๐ซ`],[`Primary Metal Manufacturing`,`๐ฉ`],[`Printing Services`,`๐จ๏ธ`],[`Professional Organizations`,`๐๏ธ`],[`Professional Services`,`๐ผ`],[`Professional Training and Coaching`,`๐ฏ`],[`Program Development`,`๐จโ๐ป`],[`Public Assistance Programs`,`๐ค`],[`Public Health`,`๐ฅ`],[`Public Policy`,`๐`],[`Public Policy Offices`,`๐๏ธ`],[`Public Relations and Communications Services`,`๐ฃ`],[`Public Safety`,`๐จ`],[`Racetracks`,`๐`],[`Radio and Television Broadcasting`,`๐ป`],[`Rail Transportation`,`๐`],[`Railroad Equipment Manufacturing`,`๐`],[`Ranching`,`๐ค `],[`Ranching and Fisheries`,`๐`],[`Real Estate`,`๐๏ธ`],[`Real Estate Agents and Brokers`,`๐`],[`Real Estate and Equipment Rental Services`,`๐ `],[`Recreational Facilities`,`๐๏ธ`],[`Regenerative Design`,`๐ฑ`],[`Religious Institutions`,`โช`],[`Renewable Energy Equipment Manufacturing`,`๐`],[`Renewable Energy Power Generation`,`๐ฌ๏ธ`],[`Renewable Energy Semiconductor Manufacturing`,`โ๏ธ`],[`Renewables & Environment`,`โป๏ธ`],[`Repair and Maintenance`,`๐ง`],[`Research`,`๐ฌ`],[`Research Services`,`๐งช`],[`Residential Building Construction`,`๐ `],[`Restaurants`,`๐ฝ๏ธ`],[`Restauration collective`,`๐ด`],[`Retail`,`๐๏ธ`],[`Retail Apparel and Fashion`,`๐`],[`Retail Appliances, Electrical, and Electronic Equipment`,`๐`],[`Retail Art Dealers`,`๐ผ๏ธ`],[`Retail Art Supplies`,`๐๏ธ`],[`Retail Books and Printed News`,`๐`],[`Retail Building Materials and Garden Equipment`,`๐ฑ`],[`Retail Florists`,`๐`],[`Retail Furniture and Home Furnishings`,`๐๏ธ`],[`Retail Gasoline`,`โฝ`],[`Retail Groceries`,`๐`],[`Retail Health and Personal Care Products`,`๐งด`],[`Retail Luxury Goods and Jewelry`,`๐`],[`Retail Motor Vehicles`,`๐`],[`Retail Musical Instruments`,`๐บ`],[`Retail Office Equipment`,`๐๏ธ`],[`Retail Office Supplies and Gifts`,`๐`],[`Retail Pharmacies`,`๐`],[`Retail Recyclable Materials & Used Merchandise`,`โป๏ธ`],[`Reupholstery and Furniture Repair`,`๐ช`],[`Robot Manufacturing`,`๐ค`],[`Robotics engineering`,`๐ฆพ`],[`Robotics Engineering`,`๐ฆพ`],[`Rubber Products Manufacturing`,`๐`],[`Satellite Telecommunications`,`๐ฐ๏ธ`],[`Savings Institutions`,`๐ฆ`],[`School and Employee Bus Services`,`๐`],[`Secretarial Schools`,`โจ๏ธ`],[`Securities and Commodity Exchanges`,`๐`],[`Security and Investigations`,`๐`],[`Security Guards and Patrol Services`,`๐`],[`Security Systems Services`,`๐จ`],[`Semiconductor Manufacturing`,`๐`],[`Semiconductors`,`๐พ`],[`Services for Renewable Energy`,`๐ฑ`],[`Services for the Elderly and Disabled`,`๐ด`],[`Services strategisch management`,`โ๏ธ`],[`Sheet Music Publishing`,`๐ผ`],[`Shipbuilding`,`๐ข`],[`Shuttles and Special Needs Transportation Services`,`๐`],[`Sightseeing Transportation`,`๐`],[`Skiing Facilities`,`๐ฟ`],[`Smart Meter Manufacturing`,`๐`],[`Soap and Cleaning Product Manufacturing`,`๐งผ`],[`Social Networking Platforms`,`๐ฌ`],[`Software Development`,`๐ป`],[`Solar Electric Power Generation`,`โ๏ธ`],[`Sound Recording`,`๐๏ธ`],[`Space Research and Technology`,`๐`],[`Specialty Trade Contractors`,`๐จ`],[`Spectator Sports`,`๐๏ธ`],[`Sporting Goods`,`๐`],[`Sporting Goods Manufacturing`,`โฝ`],[`Sports and Recreation Instruction`,`๐๏ธ`],[`Sports Teams and Clubs`,`๐`],[`Spring and Wire Product Manufacturing`,`๐`],[`Staffing and Recruiting`,`๐งโ๐ผ`],[`Steam and Air-Conditioning Supply`,`โจ๏ธ`],[`Strategic Management Services`,`โ๏ธ`],[`Subdivision of Land`,`๐บ๏ธ`],[`Sugar and Confectionery Product Manufacturing`,`๐ฌ`],[`Surveying and Mapping Services`,`๐บ๏ธ`],[`Taxi and Limousine Services`,`๐`],[`Technical and Vocational Training`,`๐ ๏ธ`],[`Technology, Information and Internet`,`๐`],[`Technology, Information and Media`,`๐ป`],[`Telecommunications`,`๐`],[`Telecommunications Carriers`,`๐ก`],[`Telephone Call Centers`,`โ๏ธ`],[`Temporary Help Services`,`โณ`],[`Textile Manufacturing`,`๐งต`],[`Theater Companies`,`๐ญ`],[`Think tanks`,`๐ก`],[`Think Tanks`,`๐ก`],[`Tobacco`,`๐ฌ`],[`Tobacco Manufacturing`,`๐ฌ`],[`Translation and Localization`,`๐`],[`Transport aรยฉrien`,`โ๏ธ`],[`Transport maritime`,`๐ข`],[`Transportation Equipment Manufacturing`,`๐`],[`Transportation Programs`,`๐`],[`Transportation, Logistics, Supply Chain and Storage`,`๐ฆ`],[`Transportation/Trucking/Railroad`,`๐`],[`Travel Arrangements`,`๐งณ`],[`Truck Transportation`,`๐`],[`Trusts and Estates`,`๐`],[`Turned Products and Fastener Manufacturing`,`๐ฉ`],[`Urban Transit Services`,`๐`],[`Utilities`,`๐ก`],[`Utilities Administration`,`๐`],[`Utility System Construction`,`๐๏ธ`],[`Vehicle Repair and Maintenance`,`๐ง`],[`Venture Capital and Private Equity Principals`,`๐ธ`],[`Veterinary`,`๐`],[`Veterinary Services`,`๐`],[`Vocational Rehabilitation Services`,`โฟ`],[`Warehousing`,`๐ฌ`],[`Warehousing and Storage`,`๐ฆ`],[`Waste Collection`,`๐๏ธ`],[`Waste Treatment and Disposal`,`โป๏ธ`],[`Water Supply and Irrigation Systems`,`๐ง`],[`Water, Waste, Steam, and Air Conditioning Services`,`๐ง`],[`Wellness and Fitness Services`,`๐ง`],[`Wholesale`,`๐ฆ`],[`Wholesale Alcoholic Beverages`,`๐ท`],[`Wholesale Apparel and Sewing Supplies`,`๐งต`],[`Wholesale Appliances, Electrical, and Electronics`,`๐`],[`Wholesale Building Materials`,`๐งฑ`],[`Wholesale Chemical and Allied Products`,`๐งช`],[`Wholesale Computer Equipment`,`๐ป`],[`Wholesale Drugs and Sundries`,`๐`],[`Wholesale Food and Beverage`,`๐ฑ`],[`Wholesale Footwear`,`๐`],[`Wholesale Furniture and Home Furnishings`,`๐๏ธ`],[`Wholesale Hardware, Plumbing, Heating Equipment`,`๐ง`],[`Wholesale Import and Export`,`๐ข`],[`Wholesale Luxury Goods and Jewelry`,`๐`],[`Wholesale Machinery`,`๐ญ`],[`Wholesale Metals and Minerals`,`๐ฉ`],[`Wholesale Motor Vehicles and Parts`,`๐`],[`Wholesale Paper Products`,`๐`],[`Wholesale Petroleum and Petroleum Products`,`โฝ`],[`Wholesale Photography Equipment and Supplies`,`๐ท`],[`Wholesale Raw Farm Products`,`๐ฝ`],[`Wholesale Recyclable Materials`,`โป๏ธ`],[`Wind Electric Power Generation`,`๐ฌ๏ธ`],[`Wine & Spirits`,`๐ท`],[`Wineries`,`๐`],[`Wireless Services`,`๐ถ`],[`Women's Handbag Manufacturing`,`๐`],[`Wood Product Manufacturing`,`๐ชต`],[`Writing and Editing`,`โ๏ธ`],[`Zoos and Botanical Gardens`,`๐ฆ`]]),Ge=(e=>e.map(([e,t])=>({value:e,label:e,widgets:{emoji:{char:t}}})))([[`1-10`,`๐ฑ`],[`11-50`,`๐ `],[`51-200`,`๐ข`],[`201-500`,`๐ฌ`],[`501-1,000`,`๐๏ธ`],[`1,001-5,000`,`๐๏ธ`],[`5,001-10,000`,`๐`],[`10,001+`,`๐`]]),Ke=e=>e.map(([e,t,n])=>({value:e,label:t,widgets:{emoji:{char:n}}})),qe=Ke([[`AF`,`Afghanistan`,`๐ฆ๐ซ`],[`AL`,`Albania`,`๐ฆ๐ฑ`],[`DZ`,`Algeria`,`๐ฉ๐ฟ`],[`AD`,`Andorra`,`๐ฆ๐ฉ`],[`AO`,`Angola`,`๐ฆ๐ด`],[`AG`,`Antigua and Barbuda`,`๐ฆ๐ฌ`],[`AR`,`Argentina`,`๐ฆ๐ท`],[`AM`,`Armenia`,`๐ฆ๐ฒ`],[`AU`,`Australia`,`๐ฆ๐บ`],[`AT`,`Austria`,`๐ฆ๐น`],[`AZ`,`Azerbaijan`,`๐ฆ๐ฟ`],[`BS`,`Bahamas`,`๐ง๐ธ`],[`BH`,`Bahrain`,`๐ง๐ญ`],[`BD`,`Bangladesh`,`๐ง๐ฉ`],[`BB`,`Barbados`,`๐ง๐ง`],[`BY`,`Belarus`,`๐ง๐พ`],[`BE`,`Belgium`,`๐ง๐ช`],[`BZ`,`Belize`,`๐ง๐ฟ`],[`BJ`,`Benin`,`๐ง๐ฏ`],[`BT`,`Bhutan`,`๐ง๐น`],[`BO`,`Bolivia`,`๐ง๐ด`],[`BA`,`Bosnia and Herzegovina`,`๐ง๐ฆ`],[`BW`,`Botswana`,`๐ง๐ผ`],[`BR`,`Brazil`,`๐ง๐ท`],[`BN`,`Brunei`,`๐ง๐ณ`],[`BG`,`Bulgaria`,`๐ง๐ฌ`],[`BF`,`Burkina Faso`,`๐ง๐ซ`],[`BI`,`Burundi`,`๐ง๐ฎ`],[`CV`,`Cabo Verde`,`๐จ๐ป`],[`KH`,`Cambodia`,`๐ฐ๐ญ`],[`CM`,`Cameroon`,`๐จ๐ฒ`],[`CA`,`Canada`,`๐จ๐ฆ`],[`CF`,`Central African Republic`,`๐จ๐ซ`],[`TD`,`Chad`,`๐น๐ฉ`],[`CL`,`Chile`,`๐จ๐ฑ`],[`CN`,`China`,`๐จ๐ณ`],[`CO`,`Colombia`,`๐จ๐ด`],[`KM`,`Comoros`,`๐ฐ๐ฒ`],[`CG`,`Congo`,`๐จ๐ฌ`],[`CD`,`Congo (Democratic Republic)`,`๐จ๐ฉ`],[`CR`,`Costa Rica`,`๐จ๐ท`],[`CI`,`Cรดte d'Ivoire`,`๐จ๐ฎ`],[`HR`,`Croatia`,`๐ญ๐ท`],[`CU`,`Cuba`,`๐จ๐บ`],[`CY`,`Cyprus`,`๐จ๐พ`],[`CZ`,`Czech Republic`,`๐จ๐ฟ`],[`DK`,`Denmark`,`๐ฉ๐ฐ`],[`DJ`,`Djibouti`,`๐ฉ๐ฏ`],[`DM`,`Dominica`,`๐ฉ๐ฒ`],[`DO`,`Dominican Republic`,`๐ฉ๐ด`],[`EC`,`Ecuador`,`๐ช๐จ`],[`EG`,`Egypt`,`๐ช๐ฌ`],[`SV`,`El Salvador`,`๐ธ๐ป`],[`GQ`,`Equatorial Guinea`,`๐ฌ๐ถ`],[`ER`,`Eritrea`,`๐ช๐ท`],[`EE`,`Estonia`,`๐ช๐ช`],[`SZ`,`Eswatini`,`๐ธ๐ฟ`],[`ET`,`Ethiopia`,`๐ช๐น`],[`FJ`,`Fiji`,`๐ซ๐ฏ`],[`FI`,`Finland`,`๐ซ๐ฎ`],[`FR`,`France`,`๐ซ๐ท`],[`GA`,`Gabon`,`๐ฌ๐ฆ`],[`GM`,`Gambia`,`๐ฌ๐ฒ`],[`GE`,`Georgia`,`๐ฌ๐ช`],[`DE`,`Germany`,`๐ฉ๐ช`],[`GH`,`Ghana`,`๐ฌ๐ญ`],[`GR`,`Greece`,`๐ฌ๐ท`],[`GD`,`Grenada`,`๐ฌ๐ฉ`],[`GT`,`Guatemala`,`๐ฌ๐น`],[`GN`,`Guinea`,`๐ฌ๐ณ`],[`GW`,`Guinea-Bissau`,`๐ฌ๐ผ`],[`GY`,`Guyana`,`๐ฌ๐พ`],[`HT`,`Haiti`,`๐ญ๐น`],[`HN`,`Honduras`,`๐ญ๐ณ`],[`HK`,`Hong Kong`,`๐ญ๐ฐ`],[`HU`,`Hungary`,`๐ญ๐บ`],[`IS`,`Iceland`,`๐ฎ๐ธ`],[`IN`,`India`,`๐ฎ๐ณ`],[`ID`,`Indonesia`,`๐ฎ๐ฉ`],[`IR`,`Iran`,`๐ฎ๐ท`],[`IQ`,`Iraq`,`๐ฎ๐ถ`],[`IE`,`Ireland`,`๐ฎ๐ช`],[`IL`,`Israel`,`๐ฎ๐ฑ`],[`IT`,`Italy`,`๐ฎ๐น`],[`JM`,`Jamaica`,`๐ฏ๐ฒ`],[`JP`,`Japan`,`๐ฏ๐ต`],[`JO`,`Jordan`,`๐ฏ๐ด`],[`KZ`,`Kazakhstan`,`๐ฐ๐ฟ`],[`KE`,`Kenya`,`๐ฐ๐ช`],[`KI`,`Kiribati`,`๐ฐ๐ฎ`],[`KW`,`Kuwait`,`๐ฐ๐ผ`],[`KG`,`Kyrgyzstan`,`๐ฐ๐ฌ`],[`LA`,`Laos`,`๐ฑ๐ฆ`],[`LV`,`Latvia`,`๐ฑ๐ป`],[`LB`,`Lebanon`,`๐ฑ๐ง`],[`LS`,`Lesotho`,`๐ฑ๐ธ`],[`LR`,`Liberia`,`๐ฑ๐ท`],[`LY`,`Libya`,`๐ฑ๐พ`],[`LI`,`Liechtenstein`,`๐ฑ๐ฎ`],[`LT`,`Lithuania`,`๐ฑ๐น`],[`LU`,`Luxembourg`,`๐ฑ๐บ`],[`MO`,`Macao`,`๐ฒ๐ด`],[`MG`,`Madagascar`,`๐ฒ๐ฌ`],[`MW`,`Malawi`,`๐ฒ๐ผ`],[`MY`,`Malaysia`,`๐ฒ๐พ`],[`MV`,`Maldives`,`๐ฒ๐ป`],[`ML`,`Mali`,`๐ฒ๐ฑ`],[`MT`,`Malta`,`๐ฒ๐น`],[`MH`,`Marshall Islands`,`๐ฒ๐ญ`],[`MR`,`Mauritania`,`๐ฒ๐ท`],[`MU`,`Mauritius`,`๐ฒ๐บ`],[`MX`,`Mexico`,`๐ฒ๐ฝ`],[`FM`,`Micronesia`,`๐ซ๐ฒ`],[`MD`,`Moldova`,`๐ฒ๐ฉ`],[`MC`,`Monaco`,`๐ฒ๐จ`],[`MN`,`Mongolia`,`๐ฒ๐ณ`],[`ME`,`Montenegro`,`๐ฒ๐ช`],[`MA`,`Morocco`,`๐ฒ๐ฆ`],[`MZ`,`Mozambique`,`๐ฒ๐ฟ`],[`MM`,`Myanmar`,`๐ฒ๐ฒ`],[`NA`,`Namibia`,`๐ณ๐ฆ`],[`NR`,`Nauru`,`๐ณ๐ท`],[`NP`,`Nepal`,`๐ณ๐ต`],[`NL`,`Netherlands`,`๐ณ๐ฑ`],[`NZ`,`New Zealand`,`๐ณ๐ฟ`],[`NI`,`Nicaragua`,`๐ณ๐ฎ`],[`NE`,`Niger`,`๐ณ๐ช`],[`NG`,`Nigeria`,`๐ณ๐ฌ`],[`KP`,`North Korea`,`๐ฐ๐ต`],[`MK`,`North Macedonia`,`๐ฒ๐ฐ`],[`NO`,`Norway`,`๐ณ๐ด`],[`OM`,`Oman`,`๐ด๐ฒ`],[`PK`,`Pakistan`,`๐ต๐ฐ`],[`PW`,`Palau`,`๐ต๐ผ`],[`PS`,`Palestine`,`๐ต๐ธ`],[`PA`,`Panama`,`๐ต๐ฆ`],[`PG`,`Papua New Guinea`,`๐ต๐ฌ`],[`PY`,`Paraguay`,`๐ต๐พ`],[`PE`,`Peru`,`๐ต๐ช`],[`PH`,`Philippines`,`๐ต๐ญ`],[`PL`,`Poland`,`๐ต๐ฑ`],[`PT`,`Portugal`,`๐ต๐น`],[`PR`,`Puerto Rico`,`๐ต๐ท`],[`QA`,`Qatar`,`๐ถ๐ฆ`],[`RO`,`Romania`,`๐ท๐ด`],[`RU`,`Russia`,`๐ท๐บ`],[`RW`,`Rwanda`,`๐ท๐ผ`],[`KN`,`Saint Kitts and Nevis`,`๐ฐ๐ณ`],[`LC`,`Saint Lucia`,`๐ฑ๐จ`],[`VC`,`Saint Vincent and the Grenadines`,`๐ป๐จ`],[`WS`,`Samoa`,`๐ผ๐ธ`],[`SM`,`San Marino`,`๐ธ๐ฒ`],[`ST`,`Sรฃo Tomรฉ and Prรญncipe`,`๐ธ๐น`],[`SA`,`Saudi Arabia`,`๐ธ๐ฆ`],[`SN`,`Senegal`,`๐ธ๐ณ`],[`RS`,`Serbia`,`๐ท๐ธ`],[`SC`,`Seychelles`,`๐ธ๐จ`],[`SL`,`Sierra Leone`,`๐ธ๐ฑ`],[`SG`,`Singapore`,`๐ธ๐ฌ`],[`SK`,`Slovakia`,`๐ธ๐ฐ`],[`SI`,`Slovenia`,`๐ธ๐ฎ`],[`SB`,`Solomon Islands`,`๐ธ๐ง`],[`SO`,`Somalia`,`๐ธ๐ด`],[`ZA`,`South Africa`,`๐ฟ๐ฆ`],[`KR`,`South Korea`,`๐ฐ๐ท`],[`SS`,`South Sudan`,`๐ธ๐ธ`],[`ES`,`Spain`,`๐ช๐ธ`],[`LK`,`Sri Lanka`,`๐ฑ๐ฐ`],[`SD`,`Sudan`,`๐ธ๐ฉ`],[`SR`,`Suriname`,`๐ธ๐ท`],[`SE`,`Sweden`,`๐ธ๐ช`],[`CH`,`Switzerland`,`๐จ๐ญ`],[`SY`,`Syria`,`๐ธ๐พ`],[`TW`,`Taiwan`,`๐น๐ผ`],[`TJ`,`Tajikistan`,`๐น๐ฏ`],[`TZ`,`Tanzania`,`๐น๐ฟ`],[`TH`,`Thailand`,`๐น๐ญ`],[`TL`,`Timor-Leste`,`๐น๐ฑ`],[`TG`,`Togo`,`๐น๐ฌ`],[`TO`,`Tonga`,`๐น๐ด`],[`TT`,`Trinidad and Tobago`,`๐น๐น`],[`TN`,`Tunisia`,`๐น๐ณ`],[`TR`,`Turkey`,`๐น๐ท`],[`TM`,`Turkmenistan`,`๐น๐ฒ`],[`TV`,`Tuvalu`,`๐น๐ป`],[`UG`,`Uganda`,`๐บ๐ฌ`],[`UA`,`Ukraine`,`๐บ๐ฆ`],[`AE`,`United Arab Emirates`,`๐ฆ๐ช`],[`GB`,`United Kingdom`,`๐ฌ๐ง`],[`US`,`United States`,`๐บ๐ธ`],[`UY`,`Uruguay`,`๐บ๐พ`],[`UZ`,`Uzbekistan`,`๐บ๐ฟ`],[`VU`,`Vanuatu`,`๐ป๐บ`],[`VA`,`Vatican City`,`๐ป๐ฆ`],[`VE`,`Venezuela`,`๐ป๐ช`],[`VN`,`Vietnam`,`๐ป๐ณ`],[`YE`,`Yemen`,`๐พ๐ช`],[`ZM`,`Zambia`,`๐ฟ๐ฒ`],[`ZW`,`Zimbabwe`,`๐ฟ๐ผ`]]),Je=Ke([[`en`,`English`,`๐ฌ๐ง`],[`de`,`German`,`๐ฉ๐ช`],[`es`,`Spanish`,`๐ช๐ธ`],[`fr`,`French`,`๐ซ๐ท`],[`pt`,`Portuguese`,`๐ต๐น`],[`it`,`Italian`,`๐ฎ๐น`],[`nl`,`Dutch`,`๐ณ๐ฑ`],[`ja`,`Japanese`,`๐ฏ๐ต`],[`ko`,`Korean`,`๐ฐ๐ท`],[`zh`,`Chinese`,`๐จ๐ณ`],[`ar`,`Arabic`,`๐ธ๐ฆ`],[`hi`,`Hindi`,`๐ฎ๐ณ`],[`id`,`Indonesian`,`๐ฎ๐ฉ`],[`tr`,`Turkish`,`๐น๐ท`],[`ru`,`Russian`,`๐ท๐บ`],[`uk`,`Ukrainian`,`๐บ๐ฆ`],[`pl`,`Polish`,`๐ต๐ฑ`],[`cs`,`Czech`,`๐จ๐ฟ`],[`sk`,`Slovak`,`๐ธ๐ฐ`],[`sl`,`Slovenian`,`๐ธ๐ฎ`],[`hr`,`Croatian`,`๐ญ๐ท`],[`sr`,`Serbian`,`๐ท๐ธ`],[`bg`,`Bulgarian`,`๐ง๐ฌ`],[`ro`,`Romanian`,`๐ท๐ด`],[`hu`,`Hungarian`,`๐ญ๐บ`],[`el`,`Greek`,`๐ฌ๐ท`],[`sv`,`Swedish`,`๐ธ๐ช`],[`no`,`Norwegian`,`๐ณ๐ด`],[`da`,`Danish`,`๐ฉ๐ฐ`],[`fi`,`Finnish`,`๐ซ๐ฎ`],[`is`,`Icelandic`,`๐ฎ๐ธ`],[`et`,`Estonian`,`๐ช๐ช`],[`lv`,`Latvian`,`๐ฑ๐ป`],[`lt`,`Lithuanian`,`๐ฑ๐น`],[`ca`,`Catalan`,`๐ช๐ธ`],[`eu`,`Basque`,`๐ช๐ธ`],[`cy`,`Welsh`,`๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ`],[`he`,`Hebrew`,`๐ฎ๐ฑ`],[`fa`,`Persian`,`๐ฎ๐ท`],[`ur`,`Urdu`,`๐ต๐ฐ`],[`ps`,`Pashto`,`๐ฆ๐ซ`],[`bn`,`Bengali`,`๐ง๐ฉ`],[`pa`,`Punjabi`,`๐ฎ๐ณ`],[`gu`,`Gujarati`,`๐ฎ๐ณ`],[`mr`,`Marathi`,`๐ฎ๐ณ`],[`kn`,`Kannada`,`๐ฎ๐ณ`],[`ml`,`Malayalam`,`๐ฎ๐ณ`],[`ta`,`Tamil`,`๐ฎ๐ณ`],[`te`,`Telugu`,`๐ฎ๐ณ`],[`or`,`Odia`,`๐ฎ๐ณ`],[`sd`,`Sindhi`,`๐ต๐ฐ`],[`ne`,`Nepali`,`๐ณ๐ต`],[`si`,`Sinhala`,`๐ฑ๐ฐ`],[`my`,`Burmese`,`๐ฒ๐ฒ`],[`th`,`Thai`,`๐น๐ญ`],[`lo`,`Lao`,`๐ฑ๐ฆ`],[`km`,`Khmer`,`๐ฐ๐ญ`],[`vi`,`Vietnamese`,`๐ป๐ณ`],[`tl`,`Tagalog`,`๐ต๐ญ`],[`ka`,`Georgian`,`๐ฌ๐ช`],[`hy`,`Armenian`,`๐ฆ๐ฒ`],[`am`,`Amharic`,`๐ช๐น`],[`bo`,`Tibetan`,`๐๏ธ`],[`dv`,`Divehi`,`๐ฒ๐ป`],[`ht`,`Haitian Creole`,`๐ญ๐น`],[`und`,`Undetermined`,`๐`]]),Ye={"location.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/regions.csv`,filter:`ranked`,columns:{value:0,weight:1,widgets:2}},"company.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/company_names.csv`,filter:`contains`,columns:{value:0,weight:1}},"company.domains":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/company_domains.csv`,filter:`contains`,columns:{value:0,weight:1}},"school.names":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/schools.csv`,filter:`ranked`,columns:{value:0,weight:1}},"location.countries":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/countries.csv`,filter:`contains`,columns:{value:0,label:0,widgets:1}},"person.job_titles":{type:`csv`,filter:`ranked`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/titles.csv`,columns:{value:0,label:0,weight:1,widgets:2}},"company.categories.crunchbase":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crunchbase/categories.csv`,filter:`contains`},"company.investors.crunchbase":{type:`csv`,filter:`contains`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crunchbase/investors.csv`},"company.investors.tracxn":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/tracxn/investors.csv`,filter:`contains`},"company.industries.linkedin":{type:`csv`,filter:`contains`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/linkedin_industries.csv`,columns:{label:0,value:0,widgets:1}},"person.employment_function.crustdata":{type:`static`,filter:`contains`,values:eee},"company.stock_exchanges.crustdata_legacy":{type:`provider`,provider:`crustdata`,resolve:ne(`companydb`,`markets`)},"company.categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`taxonomy.categories`})},"company.specialties.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`taxonomy.professional_network_specialities`})},"company.technologies.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`companydb`,field:`technology`})},"company.linkedin_categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`companydb`,`linkedin_categories`)},"job.titles.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`jobdb`,field:`job_details.title`})},"job.categories.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`jobdb`,field:`job_details.category`})},"person.skills":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/common/skills.csv`,filter:`contains`},"person.skills.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`skills.professional_network_skills`})},"person.certifications.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`certifications.name`})},"person.honors.crustdata":{type:`provider`,provider:`crustdata`,resolve:ie({db:`persondb`,field:`honors.title`})},"person.current_employer_names.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`current_employers.name`)},"person.past_employer_names.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`past_employers.name`)},"person.field_of_study":{type:`csv`,url:`https://raw.githubusercontent.com/pipe-0/pipe0/main/static/autocomplete/crustdata/field_of_study.csv`,filter:`ranked`},"person.degree.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`education_background.degree_name`)},"person.education_activities.crustdata":{type:`provider`,provider:`crustdata`,resolve:ne(`persondb`,`education_background.activities_and_societies`)},"company.types.amplemarket":{type:`static`,filter:`contains`,values:ce},"company.headcount.amplemarket":{type:`static`,filter:`contains`,values:le},"person.seniority.amplemarket":{type:`static`,filter:`contains`,values:ue},"person.departments.amplemarket":{type:`static`,filter:`contains`,values:de},"company.revenue.amplemarket":{type:`static`,filter:`contains`,values:fe},"person.job_functions.amplemarket":{type:`static`,filter:`contains`,values:_e},"company.industries.amplemarket":{type:`static`,filter:`contains`,values:ve},"company.last_funding_round.amplemarket":{type:`static`,filter:`contains`,values:ge},"company.customer_type.amplemarket":{type:`static`,filter:`contains`,values:pe},"person.linkedin_presence.amplemarket":{type:`static`,filter:`contains`,values:me},"company.linkedin_presence.amplemarket":{type:`static`,filter:`contains`,values:he},"company.headcount":{type:`static`,filter:`contains`,values:Ge},"company.followers.crustdata":{type:`static`,filter:`contains`,values:Ce},"company.linkedin_headcount.crustdata":{type:`static`,filter:`contains`,values:Se},"company.funding_rounds.crustdata":{type:`static`,filter:`contains`,values:we},"person.employer_headcount.crustdata":{type:`static`,filter:`contains`,values:Te},"person.languages.crustdata":{type:`static`,filter:`contains`,values:Ee},"post.languages.x":{type:`static`,filter:`contains`,values:Je},"post.countries.x":{type:`static`,filter:`contains`,values:qe},"feed.urls":{type:`static`,filter:`contains`,values:Ue},"company.change_types.crustdata":{type:`static`,filter:`contains`,values:De},"person.profile_change.crustdata":{type:`static`,filter:`contains`,values:Oe},"person.seniority.crustdata":{type:`static`,filter:`contains`,values:ke},"person.year_brackets":{type:`static`,filter:`contains`,values:Ae},"person.job_functions.crustdata":{type:`static`,filter:`contains`,values:Ne},"company.types.crustdata_legacy":{type:`static`,filter:`contains`,values:Pe},"company.growth_brackets":{type:`static`,filter:`contains`,values:Fe},"company.last_funding_round.crustdata":{type:`static`,filter:`contains`,values:Ie},"post.date_posted.crustdata":{type:`static`,filter:`contains`,values:je},"post.content_type.crustdata":{type:`static`,filter:`contains`,values:Me},"location.country_codes":{type:`static`,filter:`contains`,values:He},"company.stock_exchanges.crustdata":{type:`static`,filter:`contains`,values:Be},"company.types.crustdata":{type:`static`,filter:`contains`,values:ze},"company.function_headcount.crustdata":{type:`static`,filter:`contains`,values:Ve},"job.workplace_type":{type:`static`,filter:`contains`,values:tee},"company.industries.linkedin_full":{type:`static`,filter:`contains`,values:We}};r.enum(Object.keys(Ye)),new Set(Object.keys(Ye));function nee(e,t){let n=Ye[e];if(!n)throw Error(`Autocomplete: Source for key: ${e} is not defined`);let r=typeof t?.widgets==`function`?t.widgets:void 0,i=typeof t?.widgets==`function`?void 0:t?.widgets;return{options:async({query:n,limit:i,token:a})=>{let o=await fetch(`https://autocomplete.pipe0.com/v1/complete`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},body:JSON.stringify({source:e,query:n,limit:t?.limit??i??20})});if(!o.ok)throw Error(`Autocomplete failed`);let s=(await o.json()).results;return r?s.map(e=>{let t=r(e);return{...e,widgets:{...t,...e.widgets??{}}}}):s},type:n.type,sourceKey:e,file:`url`in n?n.url:void 0,widgets:i}}function h(e){let t=Ye[e];if(!t)throw Error(`Autocomplete: source "${e}" is not defined`);if(t.type!==`static`)throw Error(`Autocomplete: source "${e}" is not static (type=${t.type}); use autocomplete() instead`);return t.values.map(e=>({value:e.value,label:e.label,widgets:e.widgets}))}function Xe(e){return{type:`static`,sourceKey:e,options:h(e)}}function g(e,t){return nee(e,t)}const Ze=[`claim`,`counter`,`event_counter`],Qe=1,$e=r.enum([`string`,`number`,`boolean`]),et=r.object({type:$e,format:r.string().default(``)}),tt=r.object({type:r.literal(`fields`),input_fields:r.record(r.string(),et)}),nt=r.object({ttl_seconds:r.number().int().positive().nullable().default(null),on_own_entry:r.enum([`proceed`,`block`]).default(`block`),on_missing:r.enum([`block`,`proceed`]).default(`proceed`)}),rt=r.object({start:r.number().int().default(1),step:r.number().int().positive().default(1)}),it=r.object({});function at(e,t){if(t!==1)throw Error(`Unsupported bucket type version: ${e}@${t}`);switch(e){case`claim`:return nt;case`counter`:return rt;case`event_counter`:return it;default:throw Error(`Unknown bucket type: ${String(e)}`)}}function ot(e){switch(e){case`claim`:return nt.parse({});case`counter`:return rt.parse({});case`event_counter`:return it.parse({});default:throw Error(`Unknown bucket type: ${String(e)}`)}}function st(e,t){if(!t)return{};let n={};return e===`claim`?(t.new_bucket_ttl_in_seconds!=null&&(n.ttl_seconds=t.new_bucket_ttl_in_seconds),t.new_bucket_own_entry_behavior&&(n.on_own_entry=t.new_bucket_own_entry_behavior),t.new_bucket_missing_value_behavior&&(n.on_missing=t.new_bucket_missing_value_behavior)):e===`counter`&&(t.new_bucket_start!=null&&(n.start=t.new_bucket_start),t.new_bucket_step!=null&&(n.step=t.new_bucket_step)),n}function ct(e){return e?.new_bucket_name?.trim()||null}function lt(e){return{column:e.field_name,bucketField:e.entry_field?.trim()||e.field_name}}function ut(e){return e.map(e=>lt(e).bucketField)}function dt(e){return Array.isArray(e)?e[0]??``:e}function ft(e){return Object.keys(e.input_fields).sort()}function pt(e,t){let n=ft(e),r=ft(t);if(n.length!==r.length)return!1;for(let i=0;i<n.length;i+=1){let a=n[i];if(a===void 0||a!==r[i])return!1;let o=e.input_fields[a],s=t.input_fields[a];if(!o||!s||o.type!==s.type)return!1}return!0}function mt(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function ht(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);return new TextDecoder().decode(r)}function gt(e){return mt(JSON.stringify(e))}function _t(e){let t=ht(e);return tt.parse(JSON.parse(t))}function vt(e){if(!e)return null;try{return _t(e)}catch{return null}}var yt=class extends Error{constructor(e){super(`Field '${e}' not found`),this.fieldName=e,this.name=`ConditionFieldNotFoundError`}},bt=class extends Error{constructor(e,t,n){super(e),this.fieldName=t,this.operator=n,this.name=`ConditionEvaluationError`}};function xt(e){if(!e)return null;if(e instanceof Date)return e;if(typeof e==`string`){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e==`number`){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function St(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?null:t}return null}function Ct(e,t){let n=e.value,{field_name:r,operator:i}=t,a=t.value;if(e.type===`json`)throw new bt(`Value conditions on json fields are not supported โ use a STATUS condition (property: "status"), or extract the nested property into its own flat field.`,r,i);if(n==null)switch(i){case`eq`:return{isCheckTrue:a==null};case`neq`:return{isCheckTrue:a!=null};default:return{isCheckTrue:!1}}if(i===`older_than_days`||i===`within_last_days`){let e=xt(n),t=St(a);if(!e)throw new bt(`Field '${r}' value '${n}' cannot be parsed as a date for ${i} comparison`,r,i);if(t===null)throw new bt(`Comparison value '${a}' must be a number of days for field '${r}'`,r,i);let o=Date.now()-e.getTime(),s=t*864e5;return{isCheckTrue:i===`older_than_days`?o>s:o<=s}}if(i===`matches`){let e;try{e=new RegExp(String(a))}catch{throw new bt(`Comparison value '${a}' is not a valid regular expression for field '${r}'`,r,i)}return{isCheckTrue:e.test(String(n))}}if(e.format===`date`||e.format===`datetime`){let e=xt(n),t=xt(a);if(!e)throw new bt(`Field '${r}' has date format but value '${n}' cannot be parsed as a date`,r,i);if(!t)throw new bt(`Comparison value '${a}' cannot be parsed as a date for field '${r}'`,r,i);let o=e.getTime(),s=t.getTime();switch(i){case`gt`:return{isCheckTrue:o>s};case`gte`:return{isCheckTrue:o>=s};case`lt`:return{isCheckTrue:o<s};case`lte`:return{isCheckTrue:o<=s};case`eq`:return{isCheckTrue:o===s};case`neq`:return{isCheckTrue:o!==s};default:throw new bt(`Operator '${i}' is not supported for date fields`,r,i)}}if((e.type===`number`||typeof n==`number`)&&[`gt`,`gte`,`lt`,`lte`].includes(i)){let e=St(n),t=St(a);if(e===null)throw new bt(`Field '${r}' value '${n}' cannot be parsed as a number for ${i} comparison`,r,i);if(t===null)throw new bt(`Comparison value '${a}' cannot be parsed as a number for field '${r}'`,r,i);switch(i){case`gt`:return{isCheckTrue:e>t};case`gte`:return{isCheckTrue:e>=t};case`lt`:return{isCheckTrue:e<t};case`lte`:return{isCheckTrue:e<=t}}}let o=a;switch(e.type===`boolean`&&typeof a==`string`&&(o=a.toLowerCase()===`true`),i){case`eq`:return{isCheckTrue:n===o};case`neq`:return{isCheckTrue:n!==o};case`contains`:return{isCheckTrue:String(n).toLowerCase().includes(String(o).toLocaleLowerCase())};default:throw new bt(`Operator '${i}' is not supported for field '${r}' with type '${e.type}'`,r,i)}}function wt(e,t){let{field_name:n,operator:r}=t,i=t.value,a=e.status;switch(r){case`eq`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a===i};case`neq`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a!==i};case`contains`:if(typeof i!=`string`)throw new bt(`When comparing status values, the comparison value must be a string for field '${n}'`,n,r);return{isCheckTrue:a.includes(i)};default:throw new bt(`Operator '${r}' is not supported for status comparison on field '${n}'`,n,r)}}function Tt(e,t){let{field_name:n,property:r}=t,i=e[n];if(!i)throw new yt(n);switch(r){case`status`:return wt(i,t).isCheckTrue;case`value`:return Ct(i,t).isCheckTrue;default:throw new bt(`Unknown property '${r}' for field '${n}'`,n,`unknown`)}}function Et(e,t){let{logic:n,conditions:r}=t;if(r.length===0)return!0;let i=r.map(t=>Tt(e,t));if(n===`and`)return i.every(e=>e===!0);if(n===`or`)return i.some(e=>e===!0);throw Error(`Unknown logic operator: ${n}`)}const Dt=[`report:update@1`,`report:generate@1`,`report:deliver:email@1`,`report:post:x@1`],Ot=r.enum(Dt),kt=`rows:dedupe@1.rows:duplicate@1.rows:enrich@1.rows:adopt@1.rows:add@1.rows:import@1.row:update@1.rows:remove@1.rows:removeempty@1.rows:copy_to_sheet@1.rows:filter:prompt@1.pipe:add@1.pipe:update@1.pipe:remove@1.fields:remove@1.fields:patch@1.fields:duplicate@1.fields:add@1.fields:order:reset@1.fields:values:reset@1.fields:deletesparse:input@1.env:change@1.timetravel:create@1.timetravel:travel@1.sheet:export@1.search:run@1.stream:subscribe@1.stream:unsubscribe@1.sheet:reset@1`.split(`.`),At=r.enum(kt),jt=r.object({type:r.literal(`rows`),record_ids:r.array(r.string())}),Mt=r.object({type:r.literal(`all`)}),Nt=r.object({type:r.literal(`window`),count:r.number().int().min(1).nullable().describe("Up to N rows โ claims fewer if fewer have work. `null` = no upper bound: every actionable row from the cursor to the end of the sheet."),cursor:r.string().optional().describe(`Opaque resume cursor returned by a prior window response. Omitted โ start at the first actionable row. Rarely set โ for schedules the work set itself is the implicit, auto-advancing cursor.`)}).describe('The next `count` rows the effect still has work for, in row order. Attempted rows leave the work set, so successive runs auto-advance with no stored offset โ on a schedule this drips through a finite list N rows per fire ("the next 2 leads every day") until it is exhausted.'),Pt=r.discriminatedUnion(`type`,[jt,Mt,Nt]);function Ft(e){let t=!1,n=!1;for(let r of e??[]){let e=typeof r?.effect_id==`string`?r.effect_id:``;if(kt.includes(e))t=!0;else if(Dt.includes(e))n=!0;else return`unknown`}return t&&n?`mixed`:n?`report`:t?`sheet`:`unknown`}function It(){return`https://i.pravatar.cc/300?u=${crypto.randomUUID()}`}function Lt(e,{isNullEmpty:t}={isNullEmpty:!1}){if(e===null)return!!t;if(e==null||typeof e==`string`&&e.trim()===``||Array.isArray(e)&&e.length===0)return!0;if(typeof e==`object`){for(let n in e)if(Object.hasOwn(e,n)&&!Lt(e[n],{isNullEmpty:t}))return!1;return!0}return!1}function Rt(e){return e.split(`@`)[0]}function zt(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(zt).filter(e=>!Lt(e));let t={};for(let[n,r]of Object.entries(e)){let e=zt(r);Lt(e)||(t[n]=e)}return t}const Bt=await i();var Vt=class e{static hashObject(t){if(!Bt)throw Error(`HashAPI not initialized`);let{h64ToString:n}=Bt,r=e.normalizeObject(t);return n(JSON.stringify(r))}static normalizeObject(t){if(typeof t!=`object`||!t)return t;if(Array.isArray(t))return t.map(t=>e.normalizeObject(t));let n={},r=Object.keys(t).sort();for(let i of r)n[i]=e.normalizeObject(t[i]);return n}};function Ht(e){return e.split(`@`)[0]}function Ut(e,t){let n={effectId:e,config:zt(t)};return Vt.hashObject(n)}var Wt=class{validatePayload(e){try{return this.schema.parse(e)}catch(e){throw e instanceof n?Error(JSON.stringify(r.prettifyError(e))):e}}getSecretRequirements(){return[]}getConstantRequirements(){return[]}getConfigHashKey(){return Ut(this.payload.effect_id,this.payload.config||{})}};const Gt=t.enum([`processing`,`completed`,`failed`,`canceled`,`skipped`]).openapi(`EffectsRunStatus`);function Kt(e,t){if(!e)return t;let n={...e};for(let[e,r]of Object.entries(t))n[e]===void 0?n[e]=r:n[e]!==null&&typeof n[e]==`object`&&!Array.isArray(n[e])&&typeof r==`object`&&r&&!Array.isArray(r)&&(n[e]=Kt(n[e],r));return n}const qt={linkedin:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1ba16ca7-513b-4a25-2bc2-5548acdd2000/icon`};function Jt(e,t=32){return`https://www.google.com/s2/favicons?sz=${t}&domain=${e.replace(/^(https?:\/\/)?(www\.)?/,``)}`}function ree(e,t){return e==null?void 0:t(e)}function iee(){return Yt({companyWebsiteUrl:`linkedin.com`,entity:`LinkedIn`})}function Yt({companyWebsiteUrl:e,entity:t}){if(e)return{image_url:Jt(e),entity:t||e}}function Xt(e,t){let n=JSON.parse(JSON.stringify({...e}));if(!t)return n;for(let e in t)!(e in n)&&t[e]!=null&&(n[e]=t[e]);return n}function Zt(e){let t={};for(let n in e){let r=e[n];r!=null&&(t[n]={...r,type:`static`})}return t}function Qt(e){let t={};if(!e)return t;for(let n in e){let r=e[n];r!=null&&r.type!==`static`&&(t[n]=r)}return t}const $t={pipe0:{name:`pipe0`,label:`pipe0`,description:`A framework for lead and company data enrichment.`,url:`https://pipe0.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/52f2d955-d9f3-4139-2c13-63cfd568ed00/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},findymail:{name:`findymail`,label:`FindyMail`,description:`Find verified emails.`,url:`https://findymail.com`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,oAuthConfig:null,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/9e8ce38d-a49d-42a3-4317-506f7fbec900/icon`,background:{light:`#EAF8F1`,dark:`#1F372B`}},hunter:{name:`hunter`,label:`HunterMail`,description:`Find email addresses and send cold emails`,url:`https://hunter.io`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,oAuthConfig:null,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/a612ed1c-d5cf-421a-23c5-3cf74f506100/icon`,background:{light:`#F8F0EA`,dark:`#37291F`}},zerobounce:{name:`zerobounce`,label:`ZeroBounce`,description:`Email validation tools and email list cleaning`,url:`https://www.zerobounce.net`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/db8e9e41-0bda-4f2c-de42-cf8ce61ee500/icon`,background:{light:`#EAEEF8`,dark:`#1F2637`},oAuthConfig:null},googlemaps:{name:`googlemaps`,label:`Google Maps`,description:`A map service by Google`,url:`https://www.google.com/maps`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1796d3c1-dfb0-4555-b2bf-0ca4930e8f00/icon`,background:{light:`#EAEFF8`,dark:`#1F2937`},oAuthConfig:null},leadmagic:{name:`leadmagic`,label:`LeadMagic`,description:`Enrichment provider`,url:`https://leadmagic.io`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/508cb23a-47d4-40ee-1645-b5a8bf994c00/icon`,background:{light:`#F1EAF8`,dark:`#2B1F37`},oAuthConfig:null},builtwith:{name:`builtwith`,label:`BuiltWith`,description:`BuiltWith tracks over 2500 eCommerce technologies across over 26 million eCommerce websites.`,url:`https://builtwith.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/e675cb72-6dc2-43c8-972e-0fc9c3b73c00/icon`,background:{light:`#EAF8F0`,dark:`#1F3729`},oAuthConfig:null},perplexity:{name:`perplexity`,label:`Perplexity`,description:`AI search company`,public:!1,url:`https://perplexity.com`,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d17d3ba0-5c9e-43d8-17ee-3e4a70404e00/icon`,background:{light:`#EAF8F8`,dark:`#1F3637`},oAuthConfig:null},hackernews:{name:`hackernews`,label:`Hacker News`,description:`Public Hacker News firehose โ stories and comments, read for keyword mentions.`,url:`https://news.ycombinator.com/`,public:!0,hasManagedConnections:!1,allowsUserConnections:!1,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/bdbb786f-7d38-46b3-b05a-44f88d904200/icon`,background:{light:`#FFF3EC`,dark:`#2A1B12`},oAuthConfig:null},calcom:{name:`calcom`,label:`Cal.com`,description:`Open-source scheduling โ bookings, cancellations and reschedules.`,url:`https://cal.com/`,public:!1,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://cal.com/favicon.ico`,background:{light:`#F1F1F1`,dark:`#1C1C1C`},oAuthConfig:null},serper:{name:`serper`,label:`Serper`,description:`The World's Fastest & Cheapest Google Search API`,url:`https://serper.dev/`,public:!1,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/04e720cd-56ea-44d3-3a31-cfc516c6f800/icon`,background:{light:`#EAEFF8`,dark:`#1F2737`},oAuthConfig:null},icypeas:{name:`icypeas`,label:`Icypeas`,description:`A popular data catalog`,url:`https://www.icypeas.com/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d635119e-08ae-40cb-78bc-34161d422400/icon`,background:{light:`#EAF8F3`,dark:`#1F372F`},oAuthConfig:null},prospeo:{name:`prospeo`,label:`Prospeo`,description:`Find anyoneโs contact data.`,url:`https://prospeo.io/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/95032a9f-932b-4898-ff0d-45d49390d100/icon`,background:{light:`#EAECF8`,dark:`#1F2337`},oAuthConfig:null},surfe:{name:`surfe`,label:`Surfe`,description:`Contact data enrichment.`,url:`https://surfe.com/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/ce7158f0-61c3-49d4-df10-dbd4e0fce900/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},wiza:{name:`wiza`,label:`Wiza`,description:`B2B contact data enrichment.`,url:`https://wiza.co/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/145b4fe2-1a51-4c3b-3931-11202e0efb00/icon`,background:{light:`#EDF3FF`,dark:`#141B2B`},oAuthConfig:null},aviato:{name:`aviato`,label:`Aviato`,description:`People and company data engine.`,url:`https://aviato.co/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/b79af6eb-2169-4e1d-1e2b-fd7b551b9900/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},forager:{name:`forager`,label:`Forager`,description:`B2B contact data lookups.`,url:`https://forager.ai/`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1c150fb0-276e-49af-1f42-fdb666ac2400/icon`,background:{light:`#F4F4F5`,dark:`#1F1F23`},oAuthConfig:null},gemini:{name:`gemini`,label:`Gemini`,description:`Google's AI service`,url:`https://gemini.google.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/417de5dd-a8a8-4210-d7dc-6f40e54ece00/icon`,background:{light:`#EBEAF8`,dark:`#211F37`},oAuthConfig:null},anthropic:{name:`anthropic`,label:`Anthropic`,description:`Anthropic's Claude AI models`,url:`https://www.anthropic.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8f2b7ff3-12a6-4c55-31fd-460b9f461300/icon`,background:{light:`#F0EEE6`,dark:`#2B2A26`},oAuthConfig:null},slack:{name:`slack`,label:`Slack`,description:`A modern business chat application.`,url:`https://slack.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/676e823c-c926-4b0b-465c-121b9d1c3300/icon`,background:{light:`#F5EAF8`,dark:`#311F37`},oAuthConfig:{}},companyenrich:{name:`companyenrich`,label:`CompanyEnrich`,description:`A company enrichment service.`,url:`https://companyenrich.com`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/e80b3a16-7b36-4733-bcbe-46f471d33100/icon`,background:{light:`#EAF1F8`,dark:`#1F2B37`},oAuthConfig:{}},mixrank:{name:`mixrank`,label:`MixRank`,description:`Ultra-high-frequency technographic and people data for your data teams.`,url:`https://mixrank.com/`,hasManagedConnections:!0,allowsUserConnections:!1,connectionType:`api_key`,oAuthConfig:{},public:!0,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/a29f3095-b3f9-4b12-d21b-1c506ccd7200/icon`,background:{light:`#F8EAEB`,dark:`#371F21`}},clado:{name:`clado`,label:`Clado`,description:`A data provider deploying 10^5 AI agents to find contact information.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,connectionType:`api_key`,url:`https://clado.ai`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/fdf3d2d0-70be-45c3-2fe5-a8c5cac55a00/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},gmail:{name:`gmail`,label:`Gmail`,description:`Google's email service`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://mail.google.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8da8ab6b-7f7e-4c42-6abf-212ea537db00/icon`,background:{light:`#F8EBEA`,dark:`#37211F`},oAuthConfig:{}},googlecalendar:{name:`googlecalendar`,label:`Google Calendar`,description:`Google's calendar and scheduling service`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://calendar.google.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/9cfc8918-2046-47dd-52f9-353ce76fd800/icon`,background:{light:`#EAEFF8`,dark:`#1F2937`},oAuthConfig:{}},hubspot:{name:`hubspot`,label:`HubSpot`,description:`CRM platform for marketing, sales, and customer service.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://www.hubspot.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/bfe1c515-490d-4f12-f4a8-21aee8cc3000/icon`,background:{light:`#F8EDEA`,dark:`#37251F`},oAuthConfig:{}},salesforce:{name:`salesforce`,label:`Salesforce`,description:`The world's most widely used CRM platform.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://www.salesforce.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/91141a7c-dfb6-4e01-413e-ceed70e3c600/icon`,background:{light:`#EAF4F8`,dark:`#1F3037`},oAuthConfig:{}},resend:{name:`resend`,label:`Resend`,description:`An email platform built for developers.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,url:`https://clado.ai`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7c88f71b-8472-40f4-4bec-0e77eac30400/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},firecrawl:{name:`firecrawl`,label:`Firecrawl`,description:`Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown. Firecrawl crawls all accessible subpages and gives you clean markdown for each. No sitemap required.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.firecrawl.dev`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/5c318569-7bf4-4276-a3f2-1f25530f7f00/icon`,background:{light:`#F8F0EA`,dark:`#372B1F`},oAuthConfig:null},exa:{name:`exa`,label:`Exa`,description:`Exa is a search engine built for AI.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://exa.ai/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/8ae69780-4506-4952-a90e-02e70b06af00/icon`,background:{light:`#EAECF8`,dark:`#1F2237`},oAuthConfig:null},openai:{name:`openai`,label:`OpenAI`,description:`Foundational AI company based out of San Francisco.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://openai.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7ac79c3a-bccb-4ed4-d6e5-7b300b2fd300/icon`,background:{light:`#EAF8F5`,dark:`#1F3731`},oAuthConfig:null},millionverifier:{name:`millionverifier`,label:`MillionVerifier`,description:`E-Mail validation service.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.millionverifier.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/7a8bd9cb-efeb-492e-3f4c-311c9492b800/icon`,background:{light:`#EAF8ED`,dark:`#1F3725`},oAuthConfig:null},logodev:{name:`logodev`,label:`Logo.dev`,description:`Every company logo, one simple API.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.logo.dev/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/1defa51b-5c01-4034-1030-60f68aa46400/icon`,background:{light:`#F5F3EC`,dark:`#2E2A1F`},oAuthConfig:null},crustdata:{name:`crustdata`,label:`Crustdata`,description:`Real-time company & people data`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://crustdata.com/`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/fa05be24-d174-40f0-69c2-4fdb43c6be00/icon`,background:{light:`#F8EFEA`,dark:`#37281F`},oAuthConfig:null},amplemarket:{name:`amplemarket`,label:`Amplemarket`,description:`Sales data platform`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://www.amplemarket.com`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/adecf16b-4187-409b-d77f-16fc07fc6100/icon`,background:{light:`#EAEDF8`,dark:`#1F2537`},oAuthConfig:null},parallel:{name:`parallel`,label:`Parallel`,description:`Agentic web search & research APIs purpose-built for AI agents.`,public:!0,hasManagedConnections:!0,allowsUserConnections:!0,url:`https://parallel.ai`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/13d4ae54-9400-4577-8fbf-c96021fb0000/icon`,background:{light:`#F3F3F4`,dark:`#1F1F23`},oAuthConfig:null},luma:{name:`luma`,label:`Luma`,description:`Delightful events, calendars, and ticketing for communities.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,url:`https://lu.ma`,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/ed6cf16b-e69e-4f90-7718-85e4600fff00/icon`,background:{light:`#F2EAF8`,dark:`#2D1F37`},oAuthConfig:null},postgres:{name:`postgres`,label:`PostgreSQL`,description:`Connect your own PostgreSQL database and query it read-only.`,url:`https://www.postgresql.org`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`connection_string`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/eb8b2802-8280-45c3-ee08-a24aad6a0a00/icon`,background:{light:`#EAF2F8`,dark:`#1F2D37`},oAuthConfig:null},databricks:{name:`databricks`,label:`Databricks`,description:`Query your Databricks SQL warehouse read-only via a service principal.`,url:`https://www.databricks.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`databricks`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/07b73e49-e1fa-445b-865e-2b7dc2641700/icon`,background:{light:`#F8ECEA`,dark:`#37221F`},oAuthConfig:null},lemlist:{name:`lemlist`,label:`lemlist`,description:`Sales engagement & cold outreach platform.`,url:`https://lemlist.com`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`api_key`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/5d2b25c5-86a7-4eea-9416-fcca77cc7000/icon`,background:{light:`#EAEEF8`,dark:`#1F2637`},oAuthConfig:null},attio:{name:`attio`,label:`Attio`,description:`The CRM with a fully customizable data model.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://attio.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/d0d047c7-3871-4a7e-5031-be52ebc34900/icon`,background:{light:`#EAEBF8`,dark:`#1F2137`},oAuthConfig:{}},x:{name:`x`,label:`X (Twitter)`,description:`Search, publish, and monitor posts from your own X account.`,public:!0,hasManagedConnections:!1,allowsUserConnections:!0,connectionType:`oauth_token_bundle`,url:`https://x.com`,logoUrl:`https://imagedelivery.net/3B3AWuP94-S3Ro5eEac6JA/6b8f8056-f702-453c-d158-30e63a6d6000/icon`,background:{light:`#EFEFEF`,dark:`#1A1A1A`},oAuthConfig:{}}};function en(e){let t=$t[e];if(!t)throw Error(`Provider name '${e}' invalid`);return{...t,provider:e}}const tn=[`linkedin`,`google`,`meta`],nn=[`image`,`carousel`,`video`,`text`,`event`,`document`,`thought_leader`,`spotlight`,`follower`,`message`,`conversation`,`connected_tv`,`dpa`,`dco`,`multi_images`,`other`],rn=r.object({ad_platform:r.literal(`linkedin`),ad_url:r.url(),ad_id:r.string(),advertiser_name:r.string().nullable(),advertiser_id:r.string().nullable(),advertiser_profile_url:r.string().nullable(),ad_format:r.enum(nn),ad_headline:r.string().nullable(),ad_body_text:r.string().nullable(),ad_cta:r.string().nullable(),landing_page_url:r.string().nullable(),ad_image_urls:r.array(r.string()),ad_video_urls:r.array(r.string()),impression_range:r.string().nullable(),first_shown_at:r.string().nullable(),last_shown_at:r.string().nullable()}),an={ad_platform:`linkedin`,ad_url:`https://www.linkedin.com/ad-library/detail/1478337423`,ad_id:`1478337423`,advertiser_name:`HubSpot`,advertiser_id:`68529`,advertiser_profile_url:`https://www.linkedin.com/company/68529`,ad_format:`image`,ad_headline:`Get The Free Brand Consistency Guide From HubSpot & Canva`,ad_body_text:`Brand consistency drives revenue growth for 68% of organizations. Get the free guide.`,ad_cta:`learn_more`,landing_page_url:`https://offers.hubspot.com/how-to-build-a-brand-canva`,ad_image_urls:[`https://media.licdn.com/dms/image/v2/D4D10AQHeILHUGtZ8-A/image-shrink_1280/brand-guide.jpg`],ad_video_urls:[],impression_range:`1k-5k`,first_shown_at:`2026-08-13T00:00:00.000Z`,last_shown_at:`2026-08-16T00:00:00.000Z`},on=r.array(rn),sn=[an],cn=r.object({id:r.string(),object:r.literal(`company`),name:r.string().nullable(),website:r.url().nullable(),linkedin_url:r.url().nullable(),keywords:r.array(r.string()).nullable(),estimated_number_of_employees:r.number().nullable(),size:r.string().nullable(),industry:r.string().nullable(),logo_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),postal_code:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),locations:r.array(r.object({is_primary:r.boolean(),address:r.string().nullable(),country:r.string().nullable(),state:r.string().nullable(),city:r.string().nullable(),postal_code:r.string().nullable()})).nullable(),overview:r.string().nullable(),followers:r.number().nullable(),linkedin_presence:r.string().nullable(),founded_year:r.number().nullable(),traffic_rank:r.number().nullable(),sic_codes:r.array(r.number()).nullable(),naics_codes:r.array(r.number()).nullable(),type:r.string().nullable(),total_funding:r.number().nullable(),latest_funding_stage:r.string().nullable(),latest_funding_date:r.string().nullable(),funding_events:r.array(r.object({date:r.string().nullable(),type:r.string().nullable(),investors:r.array(r.string()),amount:r.number().nullable(),currency:r.string().nullable(),amount_usd:r.number().nullable()})).nullable(),is_b2b:r.boolean().nullable(),is_b2c:r.boolean().nullable(),technologies:r.array(r.string()).nullable(),department_headcount:r.record(r.string(),r.number()),job_function_headcount:r.record(r.string(),r.record(r.string(),r.number())),estimated_revenue:r.string().nullable()}),ln={id:`019b4aec-0d35-7c3d-8f91-fda409a136ed`,object:`company`,name:`A Company`,website:`https://company.com`,linkedin_url:`https://www.linkedin.com/company/company-1`,keywords:[`sales`,`ai sales`,`sales engagement`],estimated_number_of_employees:500,size:`201-500 employees`,industry:`Software Development`,logo_url:`https://assets.amplemarket.com/avatars/company/019b4aec-0d35-7c3d-8f91-fda409a136ed`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,postal_code:`94103`,lat:37.7749,long:-122.4194},locations:[{is_primary:!0,address:`123 Main St, San Francisco, CA 94103, United States`,country:`United States`,state:`California`,city:`San Francisco`,postal_code:`94103`},{is_primary:!1,address:`456 Broadway, New York, NY 10001, United States`,country:`United States`,state:`New York`,city:`New York`,postal_code:`10001`}],overview:`We're an AI company.`,followers:300,linkedin_presence:`large`,founded_year:1995,traffic_rank:50,sic_codes:[1,2,3],naics_codes:[5112,511,51],type:`Privately Held`,total_funding:0,latest_funding_stage:`series_b`,latest_funding_date:`2019-11-02`,funding_events:[{date:`2019-11-02`,type:`Series B`,investors:[`An Investor`,`A Venture Fund`],amount:4e7,currency:`USD`,amount_usd:4e7}],is_b2b:!0,is_b2c:!1,technologies:[],department_headcount:{consulting:31420,design:5312,education:9063,engineering_technical:167805,finance:31894,human_resources:33265,information_technology:94657,legal:41863,marketing:38192,medical_health:11440,operations:198127,product:11077,revenue:75777,senior_leadership:1933},job_function_headcount:{finance:{accounting:12824,finance:12197,financial_planning_analysis:2468,financial_reporting:250,financial_risk:886,financial_strategy:91,financial_systems:11,internal_audit_control:850,investor_relations:129,mergers_acquisitions:259,real_estate_finance:117,shared_services:56,sourcing_procurement:3767,tax:822,treasury:179},legal:{acquisitions:8,compliance:4921,contracts:206,corporate_secretary:217,ediscovery:57,ethics:1070,governance:66,governmental_affairs_regulatory_law:518,intellectual_property_patent:63,labor_employment:96,lawyer_attorney:2014,legal:31969,legal_counsel:879,legal_operations:3777,litigation:89,privacy:198},revenue:{account_management:16253,business_development:10633,channel_sales:618,customer_retention_development:1746,customer_success:15253,field_outside_sales:5375,inside_sales:3475,partnerships:380,revenue_operations:26,sales:43809,sales_enablement:26,sales_engineering:135,sales_operations:254,sales_training:465},engineering_technical:{artificial_intelligence_machine_learning:4466,bioengineering_biometrics:2,business_intelligence:6811,chemical_engineering:3014,cloud_mobility:1144,data_science:9589,devops:502,digital_transformation:13,emerging_technology_innovation:576,engineering_technical:37540,industrial_engineering:1242,mechanic:1037,mobile_development:3282,project_management:4923,research_development:10123,scrum_master_agile_coach:173,software_development:57246,support_technical_services:8328,technician:7999,technology_operations:64,test_quality_assurance:6722,ui_ux:458,web_development:2551},operations:{call_center:2095,construction:2338,corporate_strategy:1194,customer_service_support:21434,enterprise_resource_planning:389,facilities_management:18036,leasing:33,logistics:75145,office_operations:32304,operations:27241,physical_security:3280,project_development:695,quality_management:1801,real_estate:961,safety:2794,store_operations:26641,supply_chain:2728},senior_leadership:{executive:348,finance_executive:71,founder:1128,human_resources_executive:3,information_technology_executive:35,legal_executive:2,marketing_executive:314,medical_health_executive:3,operations_executive:32,sales_executive:2},medical_health:{anesthesiology:33,chiropractics:64,clinical_systems:91,dentistry:480,dermatology:6,doctors_physicians:1214,epidemiology:1,first_responder:504,medical_administration:767,medical_education_training:19,medical_research:92,medicine:1202,neurology:1,nursing:2053,nutrition_dietetics:94,obstetrics_gynecology:50,oncology:3,ophthalmology:11,optometry:46,orthopedics:14,pathology:15,pediatrics:20,pharmacy:873,physical_therapy:342,psychiatry:383,psychology:663,public_health:803,radiology:215,social_work:2495},information_technology:{application_development:37630,business_service_management_itsm:1710,collaboration_web_app:281,data_center:597,data_warehouse:2090,database_administration:309,ecommerce_development:285,enterprise_architecture:784,help_desk_desktop_services:4164,hr_financial_erp_systems:807,information_security:1742,information_technology:9139,infrastructure:2254,it_asset_management:100,it_audit_it_compliance:50,it_operations:6941,it_procurement:866,it_strategy:439,it_training:51,networking:1528,project_program_management:15780,quality_assurance:8126,retail_store_systems:1042,servers:984,storage_disaster_recovery:111,telecommunications:186,virtualization:915},education:{principal:458,professor:694,superintendent:28,teacher:7885},marketing:{advertising:3032,brand_management:2504,content_marketing:2641,customer_experience:812,customer_marketing:8,demand_generation:507,digital_marketing:1640,ecommerce_marketing:1121,event_marketing:125,field_marketing:740,lead_generation:2937,marketing:18980,marketing_analytics_insights:716,marketing_communications:496,marketing_operations:71,product_marketing:1319,public_relations:972,search_engine_optimization_pay_per_click:974,social_media_marketing:1411,strategic_communications:709,technical_marketing:5},consulting:{consultant:31420},human_resources:{compensation_benefits:908,culture_diversity_inclusion:182,employee_labor_relations:1147,health_safety:1087,hr_business_partner:3332,human_resource_information_system:1321,human_resources:13884,learning_development:7386,organizational_development:154,people_operations:10,recruiting_talent_acquisition:5764,talent_management:911,workforce_management:571},design:{graphic_visual_brand_design:3707,product_or_ui_ux_design:2364},product:{product_development:266,product_management:10811}},estimated_revenue:`$1M-$10M`},un=r.object({id:r.string(),object:r.literal(`person`),name:r.string(),first_name:r.string(),last_name:r.string(),linkedin_url:r.url().nullable().optional(),title:r.string().nullable(),headline:r.string().nullable(),about:r.string().nullable(),current_position_start_date:r.string().nullable(),current_position_description:r.string().nullable(),image_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),experiences:r.array(r.object({object:r.literal(`experience`),title:r.string().nullable(),company_name:r.string().nullable(),company_linkedin_url:r.url().nullable(),start_date:r.string().nullable(),end_date:r.string().nullable()})),educations:r.array(r.object({object:r.literal(`education`),degree:r.string().nullable(),field_of_study:r.string().nullable(),school_name:r.string().nullable(),school_linkedin_url:r.url().nullable(),start_date:r.string().nullable(),end_date:r.string().nullable()})),languages:r.array(r.object({object:r.literal(`language`),language:r.string(),iso_code:r.string(),proficiency:r.string().nullable()})),company:r.object({id:r.string(),object:r.literal(`company`),name:r.string(),website:r.url().nullable(),linkedin_url:r.url().nullable(),keywords:r.array(r.string()),estimated_number_of_employees:r.number().nullable(),size:r.string().nullable(),industry:r.string().nullable(),logo_url:r.url().nullable(),location:r.string().nullable(),location_details:r.object({city:r.string().nullable(),state:r.string().nullable(),country:r.string().nullable(),postal_code:r.string().nullable(),lat:r.number().nullable(),long:r.number().nullable()}).nullable(),locations:r.array(r.unknown()),overview:r.string().nullable(),followers:r.number().nullable(),founded_year:r.number().nullable(),traffic_rank:r.number().nullable(),sic_codes:r.array(r.number()),naics_codes:r.array(r.number()),type:r.string().nullable(),total_funding:r.number().nullable(),latest_funding_stage:r.string().nullable(),latest_funding_date:r.string().nullable(),is_b2b:r.boolean().nullable(),is_b2c:r.boolean().nullable(),technologies:r.array(r.unknown()),department_headcount:r.record(r.string(),r.number()),job_function_headcount:r.record(r.string(),r.record(r.string(),r.number())),estimated_revenue:r.string().nullable()}).nullable(),gender:r.string().nullable()}),dn={id:`019a79fa-0858-7e5d-996e-d1b18d4d5a4f`,object:`person`,name:`Jonh Doe`,first_name:`Jonh`,last_name:`Doe`,linkedin_url:`https://www.linkedin.com/in/person-1`,title:`Founder and CEO`,headline:`CEO @ Company`,about:null,current_position_start_date:`2022-05-01`,current_position_description:null,image_url:`http://haag.example/gary`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,lat:37.7749,long:-122.4194},experiences:[{object:`experience`,title:`CEO`,company_name:`A Company`,company_linkedin_url:`https://www.linkedin.com/company/company-1`,start_date:`2023-11-01`,end_date:null}],educations:[{object:`education`,degree:`BSc`,field_of_study:`Computer Science`,school_name:`MIT`,school_linkedin_url:`https://www.linkedin.com/school/mit`,start_date:`2019-11-01`,end_date:`2023-11-01`}],languages:[{object:`language`,language:`Portuguese`,iso_code:`por`,proficiency:`Native or bilingual proficiency`},{object:`language`,language:`English`,iso_code:`eng`,proficiency:`Professional working proficiency`},{object:`language`,language:`Spanish`,iso_code:`spa`,proficiency:null}],company:{id:`019a79fa-07e3-7d74-b11f-374bf213e9ad`,object:`company`,name:`A Company`,website:`https://company.com`,linkedin_url:`https://www.linkedin.com/company/company-1`,keywords:[`sales`,`ai sales`,`sales engagement`],estimated_number_of_employees:500,size:`201-500 employees`,industry:`Software Development`,logo_url:`https://assets.amplemarket.com/avatars/company/019a79fa-07e3-7d74-b11f-374bf213e9ad`,location:`San Francisco, California, United States`,location_details:{city:`San Francisco`,state:`California`,country:`United States`,postal_code:`94103`,lat:37.7749,long:-122.4194},locations:[],overview:`Circle Health is a group of hospitals in the UK`,followers:0,founded_year:1995,traffic_rank:50,sic_codes:[1,2,3],naics_codes:[5112,511,51],type:`Privately Held`,total_funding:4e7,latest_funding_stage:`series_b`,latest_funding_date:`2019-11-02`,is_b2b:!0,is_b2c:!1,technologies:[],department_headcount:{consulting:31420,design:5312,education:9063,engineering_technical:167805,finance:31894,human_resources:33265,information_technology:94657,legal:41863,marketing:38192,medical_health:11440,operations:198127,product:11077,revenue:75777,senior_leadership:1933},job_function_headcount:{finance:{accounting:12824,finance:12197,financial_planning_analysis:2468,financial_reporting:250,financial_risk:886,financial_strategy:91,financial_systems:11,internal_audit_control:850,investor_relations:129,mergers_acquisitions:259,real_estate_finance:117,shared_services:56,sourcing_procurement:3767,tax:822,treasury:179},legal:{acquisitions:8,compliance:4921,contracts:206,corporate_secretary:217,ediscovery:57,ethics:1070,governance:66,governmental_affairs_regulatory_law:518,intellectual_property_patent:63,labor_employment:96,lawyer_attorney:2014,legal:31969,legal_counsel:879,legal_operations:3777,litigation:89,privacy:198},revenue:{account_management:16253,business_development:10633,channel_sales:618,customer_retention_development:1746,customer_success:15253,field_outside_sales:5375,inside_sales:3475,partnerships:380,revenue_operations:26,sales:43809,sales_enablement:26,sales_engineering:135,sales_operations:254,sales_training:465},engineering_technical:{artificial_intelligence_machine_learning:4466,bioengineering_biometrics:2,business_intelligence:6811,chemical_engineering:3014,cloud_mobility:1144,data_science:9589,devops:502,digital_transformation:13,emerging_technology_innovation:576,engineering_technical:37540,industrial_engineering:1242,mechanic:1037,mobile_development:3282,project_management:4923,research_development:10123,scrum_master_agile_coach:173,software_development:57246,support_technical_services:8328,technician:7999,technology_operations:64,test_quality_assurance:6722,ui_ux:458,web_development:2551},operations:{call_center:2095,construction:2338,corporate_strategy:1194,customer_service_support:21434,enterprise_resource_planning:389,facilities_management:18036,leasing:33,logistics:75145,office_operations:32304,operations:27241,physical_security:3280,project_development:695,quality_management:1801,real_estate:961,safety:2794,store_operations:26641,supply_chain:2728},senior_leadership:{executive:348,finance_executive:71,founder:1128,human_resources_executive:3,information_technology_executive:35,legal_executive:2,marketing_executive:314,medical_health_executive:3,operations_executive:32,sales_executive:2},medical_health:{anesthesiology:33,chiropractics:64,clinical_systems:91,dentistry:480,dermatology:6,doctors_physicians:1214,epidemiology:1,first_responder:504,medical_administration:767,medical_education_training:19,medical_research:92,medicine:1202,neurology:1,nursing:2053,nutrition_dietetics:94,obstetrics_gynecology:50,oncology:3,ophthalmology:11,optometry:46,orthopedics:14,pathology:15,pediatrics:20,pharmacy:873,physical_therapy:342,psychiatry:383,psychology:663,public_health:803,radiology:215,social_work:2495},information_technology:{application_development:37630,business_service_management_itsm:1710,collaboration_web_app:281,data_center:597,data_warehouse:2090,database_administration:309,ecommerce_development:285,enterprise_architecture:784,help_desk_desktop_services:4164,hr_financial_erp_systems:807,information_security:1742,information_technology:9139,infrastructure:2254,it_asset_management:100,it_audit_it_compliance:50,it_operations:6941,it_procurement:866,it_strategy:439,it_training:51,networking:1528,project_program_management:15780,quality_assurance:8126,retail_store_systems:1042,servers:984,storage_disaster_recovery:111,telecommunications:186,virtualization:915},education:{principal:458,professor:694,superintendent:28,teacher:7885},marketing:{advertising:3032,brand_management:2504,content_marketing:2641,customer_experience:812,customer_marketing:8,demand_generation:507,digital_marketing:1640,ecommerce_marketing:1121,event_marketing:125,field_marketing:740,lead_generation:2937,marketing:18980,marketing_analytics_insights:716,marketing_communications:496,marketing_operations:71,product_marketing:1319,public_relations:972,search_engine_optimization_pay_per_click:974,social_media_marketing:1411,strategic_communications:709,technical_marketing:5},consulting:{consultant:31420},human_resources:{compensation_benefits:908,culture_diversity_inclusion:182,employee_labor_relations:1147,health_safety:1087,hr_business_partner:3332,human_resource_information_system:1321,human_resources:13884,learning_development:7386,organizational_development:154,people_operations:10,recruiting_talent_acquisition:5764,talent_management:911,workforce_management:571},design:{graphic_visual_brand_design:3707,product_or_ui_ux_design:2364},product:{product_development:266,product_management:10811}},estimated_revenue:`$1M-$10M`},gender:`male`},fn=r.object({id:r.string(),type:r.enum([`note`,`meeting`,`task`]),title:r.string().nullable(),content:r.string().nullable(),occurred_at:r.string().nullable(),url:r.string().nullable(),actor:r.string().nullable(),is_completed:r.boolean().nullable(),deadline_at:r.string().nullable(),meeting_id:r.string().nullable(),custom_properties:r.record(r.string(),r.union([r.string(),r.number(),r.boolean()]).nullable())}),pn=r.array(fn),mn=[{id:`0b2b8d8a-1f2e-4c8a-9a1f-1a2b3c4d5e6f`,type:`meeting`,title:`Discovery call`,content:`Walked through the data-enrichment use case; strong interest in the API tier.`,occurred_at:`2026-06-30T16:00:00.000Z`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,actor:`Sam Rivera`,is_completed:null,deadline_at:null,meeting_id:`0b2b8d8a-1f2e-4c8a-9a1f-1a2b3c4d5e6f`,custom_properties:{}},{id:`7f31c9a2-9d3c-4a11-b0e2-e2f7bb2af102`,type:`note`,title:`Pricing follow-up`,content:`Wants a written quote for 50 seats before end of quarter.`,occurred_at:`2026-06-18T14:03:00.000Z`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,actor:`Sam Rivera`,is_completed:null,deadline_at:null,meeting_id:null,custom_properties:{}},{id:`42d2f9b1-3a67-4a4e-8f2f-cf6f4b0a2d11`,type:`task`,title:null,content:`Send the quote to Jane.`,occurred_at:`2026-07-10T09:00:00.000Z`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,actor:`Sam Rivera`,is_completed:!1,deadline_at:`2026-07-10T09:00:00.000Z`,meeting_id:null,custom_properties:{}}],hn=[{slug:`name`,kind:`string`},{slug:`email_addresses`,kind:`string`},{slug:`job_title`,kind:`string`},{slug:`description`,kind:`string`},{slug:`company`,kind:`string`},{slug:`phone_numbers`,kind:`string`},{slug:`linkedin`,kind:`string`},{slug:`twitter`,kind:`string`},{slug:`instagram`,kind:`string`},{slug:`primary_location`,kind:`string`},{slug:`last_interaction`,kind:`string`},{slug:`next_interaction`,kind:`string`},{slug:`created_at`,kind:`string`}],gn=[{slug:`name`,kind:`string`},{slug:`domains`,kind:`string`},{slug:`description`,kind:`string`},{slug:`categories`,kind:`string`},{slug:`team`,kind:`string`},{slug:`primary_location`,kind:`string`},{slug:`linkedin`,kind:`string`},{slug:`twitter`,kind:`string`},{slug:`angellist`,kind:`string`},{slug:`last_interaction`,kind:`string`},{slug:`next_interaction`,kind:`string`},{slug:`created_at`,kind:`string`}],_n=[{slug:`name`,kind:`string`},{slug:`stage`,kind:`string`},{slug:`value`,kind:`number`},{slug:`owner`,kind:`string`},{slug:`associated_company`,kind:`string`},{slug:`associated_people`,kind:`string`},{slug:`created_at`,kind:`string`}],vn={people:hn,companies:gn,deals:_n};function yn(e,t){let n=new Set;for(let t of e)n.add(t.slug);for(let e of t)n.add(e.trim());return n.delete(``),[...n]}const bn=e=>{switch(e){case`number`:return r.number().nullable();case`boolean`:return r.boolean().nullable();default:return r.string().nullable()}},xn=e=>Object.fromEntries(e.map(e=>[e.slug,bn(e.kind)])),Sn=()=>r.record(r.string(),r.union([r.string(),r.number(),r.boolean()]).nullable()),Cn=r.object({id:r.string(),url:r.string().nullable(),matched_by:r.literal(`email_address`).optional(),...xn(hn),custom_properties:Sn()}),wn={id:`bf071e1f-6035-429d-b874-d83ea64ea13b`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,matched_by:`email_address`,name:`Jane Doe`,email_addresses:`jane@acme.com`,job_title:`Head of Data`,description:null,company:`Acme Inc.`,phone_numbers:`+49 30 1234567`,linkedin:`https://linkedin.com/in/janedoe`,twitter:null,instagram:null,primary_location:`Berlin, Germany`,last_interaction:`2026-06-18T14:03:00.000Z ยท email`,next_interaction:`2026-07-10T09:00:00.000Z ยท calendar`,created_at:`2025-11-02T09:12:44.107Z`,custom_properties:{csm_tier:`enterprise`}},Tn=r.object({id:r.string(),url:r.string().nullable(),matched_on:r.enum([`domain`,`root_domain`]).optional(),...xn(gn),custom_properties:Sn()}),En={id:`99a03ff3-0435-47da-95cc-76b2caeb4dab`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,matched_on:`domain`,name:`Acme Inc.`,domains:`acme.com`,description:`Industrial-grade anvils and rocket skates.`,categories:`Manufacturing, E-commerce`,team:`Jane Doe, John Smith`,primary_location:`Berlin, Germany`,linkedin:`https://linkedin.com/company/acme`,twitter:null,angellist:null,last_interaction:`2026-06-30T16:20:00.000Z ยท calendar`,next_interaction:null,created_at:`2025-08-19T11:40:03.201Z`,custom_properties:{}},Dn=r.array(Tn),On=[En],kn=r.object({id:r.string(),url:r.string().nullable(),...xn(_n),custom_properties:Sn()}),An={id:`7c8e11a0-2f43-4b7e-9a41-08b9350be9dd`,url:`https://app.attio.com/acme/deal/7c8e11a0-2f43-4b7e-9a41-08b9350be9dd`,name:`Acme expansion`,stage:`In Progress`,value:48e3,owner:`sam@pipe0.com`,associated_company:`Acme Inc.`,associated_people:`Jane Doe`,created_at:`2026-03-01T08:00:00.000Z`,custom_properties:{}},jn=r.array(kn),Mn=[An],Nn=r.object({id:r.string(),url:r.string().nullable(),object:r.string(),matched_by:r.string().optional(),values:Sn(),custom_properties:Sn()}),Pn={id:`e2f7bb2a-9d3c-4a11-b0e2-7f31c9a2f102`,url:`https://app.attio.com/acme/listings/e2f7bb2a-9d3c-4a11-b0e2-7f31c9a2f102`,object:`listings`,matched_by:`listing_ref`,values:{name:`Warehouse Berlin-Sรผd`,listing_ref:`LB-2041`,asking_price:125e4},custom_properties:{}},Fn=r.object({id:r.string(),url:r.string().nullable(),parent_object:r.string(),parent_record_id:r.string(),entry_values:Sn(),custom_properties:Sn()}),In={id:`42d2f9b1-3a67-4a4e-8f2f-cf6f4b0a2d11`,url:`https://app.attio.com/acme/company/99a03ff3-0435-47da-95cc-76b2caeb4dab`,parent_object:`companies`,parent_record_id:`99a03ff3-0435-47da-95cc-76b2caeb4dab`,entry_values:{stage:`Qualified`,priority:`High`},custom_properties:{"parent.name":`Acme Inc.`,"parent.domains":`acme.com`}},Ln=r.object({id:r.string(),email:r.string().nullable(),first_name:r.string().nullable(),last_name:r.string().nullable(),access_level:r.string().nullable(),avatar_url:r.string().nullable()}),Rn={id:`6f2a1c3e-9b4d-4e2a-8f1a-2d3c4b5a6e7f`,email:`sam@acme.com`,first_name:`Sam`,last_name:`Seller`,access_level:`member`,avatar_url:null},zn=r.object({id:r.string(),url:r.string().nullable(),object:r.string(),updated_attributes:r.array(r.string())}),Bn={id:`bf071e1f-6035-429d-b874-d83ea64ea13b`,url:`https://app.attio.com/acme/person/bf071e1f-6035-429d-b874-d83ea64ea13b`,object:`people`,updated_attributes:[`job_title`,`stage`]},Vn=r.array(r.string()),Hn=[`1Password`,`AJAX Libraries API`,`AWS Global Accelerator`,`AWS Lambda`,`Algolia`,`Amazon`,`Amazon ALB`,`Amazon Elastic Load Balancing Sticky Session`,`Amazon Ireland Region`],Un=r.object({spend_history:r.array(r.object({date:r.string(),spend_usd:r.number()})),spending_trend:r.number(),technology_list:r.array(r.string()),technologies_by_tag:r.record(r.string(),r.array(r.string()))}),Wn={spend_history:[{date:`2023-09-05`,spend_usd:480},{date:`2023-11-04`,spend_usd:780},{date:`2024-01-03`,spend_usd:1067},{date:`2024-10-29`,spend_usd:1564},{date:`2025-02-26`,spend_usd:1492},{date:`2025-04-27`,spend_usd:1571},{date:`2025-06-26`,spend_usd:1470}],spending_trend:.23,technology_list:`1Password,AJAX Libraries API,AWS Global Accelerator,AWS Lambda,Algolia,Amazon,Amazon ALB,Amazon Elastic Load Balancing Sticky Session,Amazon Ireland Region,Amazon Oregon Region,Amazon S3,Amazon S3 CDN,Amazon Tokyo Region,Amazon Virginia Region,Angular JS,Attribution,Axios,BunnyCDN General,CDN JS,Calendly,Cart Functionality,CloudFront,Cloudflare,Cloudflare Bot Manager,Cloudflare CDN,Cloudflare Hosting,Cloudflare Insights,Cloudflare JS,Cloudflare Network Error Logging,Cloudflare Radar,Cloudflare Radar Top 100k,Cloudflare Radar Top 200k,Cloudflare Radar Top 500k,Cloudflare Radar Top 50k,Cloudflare Web Analytics,Cloudinary,Cogeco Peer 1,CommonCrawl Top 500k,Content Delivery Network,ConvertKit,Cowboy,CrUX Dataset,CrUX Top 10m,CrUX Top 1m,CrUX Top 50m,CrUX Top 5m,Digital Ocean,Domain Not Resolving,DoubleClick.Net,Drata,Embedly,Euro,Express,Fastly,GStatic Google Static Content,Get Koala,GitHub Buttons,Global Site Tag,Google AdWords Conversion,Google Analytics,Google Analytics 4,Google Conversion Linker,Google Conversion Tracking,Google Font API,Google Hosted Libraries,Google Hosted Web Font Loader,Google Registrar,Google Remarketing,Google Tag Manager,Gravatar Profiles,Headless UI,Heroku Vegur Proxy,HubSpot Analytics,Hubspot,Hubspot Forms,IP API,IP API Pro,IPv6,Incident.io,Intellimize,Intercom,Intersection Observer,KaTeX,LinkedIn Ads,LinkedIn Insights,LiveIntent,Loom,Lorem Ipsum,Mandrill,Merge,Mintlify,Moment JS,My Salesforce,Netlify,Next.js,OpenResty,Plausible Analytics,PostHog,PrismJS,Product Hunt`.split(`,`),technologies_by_tag:{registrar:[`Google Registrar`],cdn:[`AJAX Libraries API`,`Amazon S3`,`BunnyCDN General`,`CDN JS`,`CloudFront`,`Cloudflare`,`Cloudflare JS`,`Cloudinary`,`Content Delivery Network`,`GStatic Google Static Content`,`UNPKG`,`jsDelivr`],analytics:`Attribution,Cloudflare Insights,Cloudflare Web Analytics,ConvertKit,Fastly,Get Koala,Global Site Tag,Google AdWords Conversion,Google Analytics,Google Analytics 4,Google Conversion Linker,Google Conversion Tracking,HubSpot Analytics,Hubspot,Hubspot Forms,Incident.io,Intellimize,LinkedIn Insights,Merge,Plausible Analytics,PostHog,Salesforce,Segment,Twitter Analytics,Twitter Conversion Tracking,Twitter Website Universal Tag`.split(`,`),widgets:`1Password.Algolia.Amazon Elastic Load Balancing Sticky Session.Calendly.Cloudflare Bot Manager.Cloudflare Radar.Cloudflare Radar Top 100k.Cloudflare Radar Top 200k.Cloudflare Radar Top 500k.Cloudflare Radar Top 50k.CommonCrawl Top 500k.CrUX Dataset.CrUX Top 10m.CrUX Top 1m.CrUX Top 50m.CrUX Top 5m.Drata.Embedly.GitHub Buttons.Google Font API.Google Tag Manager.Gravatar Profiles.Intercom.Lorem Ipsum.Product Hunt.Quora.SavvyCal.Slack.Termly.Typeform.Typekit.US Privacy User Signal Mechanism.Unsplash.flatpickr.reCAPTCHA.reCAPTCHA Enterprise`.split(`.`),media:[`Loom`],javascript:[`Angular JS`,`Axios`,`Google Hosted Libraries`,`Google Hosted Web Font Loader`,`IP API`,`IP API Pro`,`Intersection Observer`,`Moment JS`,`PrismJS`,`React`,`React Redux`,`Sentry`,`Underscore.js`,`WebFont Loader`,`Webpack`,`core-js`,`crypto browserify`,`es6 promise`,`jQuery`,`jQuery 3.5.1`,`lodash`,`matchMedia`],cms:[`KaTeX`,`Mintlify`,`My Salesforce`,`ReadMe`,`Rippling`,`Webflow`],"web-server":[`AWS Lambda`,`Amazon ALB`,`Cowboy`,`Varnish`],framework:[`Express`,`Headless UI`,`Heroku Vegur Proxy`,`Next.js`,`OpenResty`,`Pusher`],hosting:[`AWS Global Accelerator`,`Amazon`,`Amazon Ireland Region`,`Amazon Oregon Region`,`Amazon Tokyo Region`,`Amazon Virginia Region`,`Cloudflare Hosting`,`Cloudflare Network Error Logging`,`Cogeco Peer 1`,`Digital Ocean`,`Domain Not Resolving`,`Netlify`,`U.S. Server Location`,`Vercel`,`Webflow Hosting`],cdns:[`Amazon S3 CDN`,`Cloudflare CDN`],mx:[`Mandrill`],payment:[`Euro`,`Stripe`],server:[`IPv6`],ads:[`DoubleClick.Net`,`Google Remarketing`,`LinkedIn Ads`,`LiveIntent`,`SkimLinks`,`Twitter Ads`],shop:[`Cart Functionality`]}},Gn=r.object({trigger:r.string().describe("Cal.com's own trigger name, e.g. `BOOKING_CREATED`, `BOOKING_CANCELLED`, `BOOKING_RESCHEDULED`, `MEETING_ENDED`, `FORM_SUBMITTED`. The single most useful field to branch on โ one stream delivers several triggers."),booking_uid:r.string().nullable().describe("Cal.com's stable booking identifier (the `/booking/<uid>` segment). Survives a reschedule as a NEW uid โ see `rescheduled_from_uid` to link them."),title:r.string().nullable().describe("Booking title, e.g. `30 Min Meeting between A and B`."),status:r.string().nullable().describe("`ACCEPTED`, `PENDING`, `CANCELLED` or `REJECTED` as Cal.com reports it."),start_time:r.string().nullable().describe(`ISO 8601 start of the booked slot โ the meeting time, not the booking time.`),end_time:r.string().nullable().describe(`ISO 8601 end of the booked slot.`),timezone:r.string().nullable().describe(`IANA timezone the attendee booked in.`),event_type_id:r.number().nullable().describe(`Which Cal.com event type was booked. The way to tell a demo from an intro call when one stream watches a whole account.`),event_type_slug:r.string().nullable().describe("Slug of the booked event type, e.g. `30min`."),organizer_email:r.string().nullable().describe(`Email of the Cal.com user who was booked.`),organizer_name:r.string().nullable().describe(`Name of the Cal.com user who was booked.`),attendee_emails:r.array(r.string()).describe("Every attendee email on the booking, in Cal.com's order โ the first is the person who booked. The flat `email` column carries that first one."),attendee_names:r.array(r.string()).describe("Attendee names, aligned with `attendee_emails`."),location:r.string().nullable().describe("Where it happens, as Cal.com stores it โ a URL, an address, a phone number, or an integration key like `integrations:daily`."),meeting_url:r.string().nullable().describe(`Video call link when the location is an integrated conferencing provider.`),additional_notes:r.string().nullable().describe(`The free-text note field on the booking form.`),responses:r.record(r.string(),r.unknown()).describe(`Answers to the event type's booking questions, keyed by question identifier. Custom questions land here and NOWHERE else โ this is where a qualifying answer ('company size', 'what do you want to discuss') lives.`),cancellation_reason:r.string().nullable().describe(`Set on a cancellation; null otherwise.`),rescheduled_from_uid:r.string().nullable().describe(`On a reschedule, the uid of the booking this one replaced. Null for a first booking.`),payment_paid:r.boolean().nullable().describe(`For paid event types: whether payment completed. Null when the type is free.`),booked_at:r.string().nullable().describe(`When the booking was MADE, as opposed to when the meeting is scheduled for.`)}).describe(`One Cal.com booking`),Kn={trigger:`BOOKING_CREATED`,booking_uid:`bFJeNb2uX8ANpT3JL5EfXw`,title:`30 Min Meeting between Ada Lovelace and Charles Babbage`,status:`ACCEPTED`,start_time:`2026-08-21T14:00:00Z`,end_time:`2026-08-21T14:30:00Z`,timezone:`Europe/London`,event_type_id:1274901,event_type_slug:`30min`,organizer_email:`ada.lovelace@example.com`,organizer_name:`Ada Lovelace`,attendee_emails:[`charles.babbage@analyticalengines.com`],attendee_names:[`Charles Babbage`],location:`integrations:daily`,meeting_url:`https://app.cal.com/video/bFJeNb2uX8ANpT3JL5EfXw`,additional_notes:`Keen to see the difference-engine integration.`,responses:{"what-are-you-hoping-to-cover":`Pricing for a 40-seat team`},cancellation_reason:null,rescheduled_from_uid:null,payment_paid:null,booked_at:`2026-08-19T09:12:44Z`},qn=[`meeting`,`out_of_office`,`focus_time`,`working_location`,`birthday`,`from_gmail`,`other`],Jn=r.object({event_title:r.string().nullable(),event_start:r.string().nullable(),event_end:r.string().nullable(),event_timezone:r.string().nullable(),event_type:r.enum(qn),event_location:r.string().nullable(),event_url:r.string().nullable(),organizer_email:r.string().nullable(),attendee_emails:r.array(r.string()),virtual_meeting_url:r.string().nullable()}),Yn={event_title:`Intro call โ Analytical Engines Ltd`,event_start:`2026-07-14T11:00:00+02:00`,event_end:`2026-07-14T11:30:00+02:00`,event_timezone:`Europe/Berlin`,event_type:`meeting`,event_location:`Google Meet`,event_url:`https://www.google.com/calendar/event?eid=N2FjOWZrcTJuMGU4YjFtNQ`,organizer_email:`ada.lovelace@example.com`,attendee_emails:[`ada.lovelace@example.com`,`charles.babbage@analyticalengines.com`],virtual_meeting_url:`https://meet.google.com/abc-defg-hij`},Xn=r.object({profile:r.object({id:r.string().nullable().optional().describe(`Profile ID`),name:r.string().nullable().optional().describe(`Full name`),location:r.string().nullable().optional().describe(`Profile location`),location_country:r.string().nullable().optional().describe(`Country of the profile location`),location_regions:r.array(r.string()).nullable().optional().describe(`Regions associated with the profile location`),headline:r.string().nullable().optional().describe(`Profile headline`),description:r.string().nullable().optional().describe(`Profile description or summary`),linkedin_url:r.string().nullable().optional().describe(`LinkedIn profile URL`),picture_permalink:r.string().nullable().optional().describe(`URL to profile picture`),connections_count:r.number().nullable().optional().describe(`Number of LinkedIn connections`),followers_count:r.number().nullable().optional().describe(`Number of followers`),is_working:r.boolean().nullable().optional().describe(`Whether the person is currently working`),is_decision_maker:r.boolean().nullable().optional().describe(`Whether the person is a decision maker`),total_experience_duration_months:r.number().nullable().optional().describe(`Total work experience duration in months`),projected_total_salary:r.number().nullable().optional().describe(`Projected total salary`),post_count:r.number().nullable().optional().describe(`Number of posts`),posts:r.string().nullable().optional().describe(`Posts content`),liked_posts:r.string().nullable().optional().describe(`Posts liked by the user`),recommendations:r.string().nullable().optional().describe(`Recommendations received`),recommendations_count:r.number().nullable().optional().describe(`Number of recommendations`),skills:r.array(r.string()).nullable().optional().describe(`List of skills`),languages:r.array(r.string()).nullable().optional().describe(`List of spoken languages`),courses:r.array(r.any()).nullable().optional().describe(`List of courses`),github_username:r.string().nullable().optional().describe(`GitHub username`),github_contributions_count:r.number().nullable().optional().describe(`GitHub contributions count`)}).nullable().optional().describe(`Profile information`),experience:r.array(r.object({employee_position_id:r.string().nullable().optional().describe(`Position ID`),employee_title:r.string().nullable().optional().describe(`Job title`),employer_name:r.string().nullable().optional().describe(`Employer name`),employee_description:r.string().nullable().optional().describe(`Employee description`),employer_linkedin_description:r.string().nullable().optional().describe(`Employer's LinkedIn description`),employer_linkedin_id:r.string().nullable().optional().describe(`Employer's LinkedIn ID`),employer_logo_url:r.string().nullable().optional().describe(`Employer logo URL`),start_date:r.string().nullable().optional().describe(`Employment start date`),end_date:r.string().nullable().optional().describe(`Employment end date`),employee_location:r.string().nullable().optional().describe(`Employee's work location`),employer_company_ids:r.array(r.any()).nullable().optional().describe(`Employer company IDs`),employer_company_website_domains:r.array(r.any()).nullable().optional().describe(`Employer company website domains`),location:r.string().nullable().optional().describe(`Location`),is_current:r.boolean().nullable().optional().describe(`Whether this is the current position`),duration_months:r.string().nullable().optional().describe(`Duration of employment in months`),department:r.string().nullable().optional().describe(`Department`),is_public:r.boolean().nullable().optional().describe(`Whether the experience is public`),company_id:r.string().nullable().optional().describe(`Company ID`),company_annual_revenue:r.union([r.string(),r.number()]).nullable().optional().describe(`Company annual revenue`),company_employees_count:r.union([r.string(),r.number()]).nullable().optional().describe(`Number of company employees`),company_followers_count:r.union([r.string(),r.number()]).nullable().optional().describe(`Number of company followers`),company_founded_year:r.union([r.string(),r.number()]).nullable().optional().describe(`Year company was founded`),company_hq_city:r.string().nullable().optional().describe(`Company headquarters city`),company_hq_country:r.string().nullable().optional().describe(`Company headquarters country`),company_hq_regions:r.array(r.string()).nullable().optional().describe(`Company headquarters regions`),company_industry:r.string().nullable().optional().describe(`Industry`),company_is_b2b:r.boolean().nullable().optional().describe(`Whether the company is B2B`),company_linkedin_url:r.string().nullable().optional().describe(`Company LinkedIn URL`),company_name_alias:r.array(r.string()).nullable().optional().describe(`Company name aliases`),company_type:r.string().nullable().optional().describe(`Company type`),company_updates:r.array(r.string()).nullable().optional().describe(`Company updates`),company_employee_reviews_aggregate_score:r.number().nullable().optional().describe(`Average employee review score`),company_employee_reviews_count:r.number().nullable().optional().describe(`Number of employee reviews`),competitors:r.array(r.string()).nullable().optional().describe(`List of competitors`),technologies_used:r.array(r.string()).nullable().optional().describe(`Technologies used`),active_job_postings_count:r.number().nullable().optional().describe(`Active job postings count`),active_job_postings_titles:r.array(r.string()).nullable().optional().describe(`Titles of active job postings`),last_funding_round_amount_raised:r.number().nullable().optional().describe(`Amount raised in last funding round`),last_funding_round_announced_month:r.number().nullable().optional().describe(`Month last funding round was announced`),last_funding_round_announced_year:r.number().nullable().optional().describe(`Year last funding round was announced`),last_funding_round_lead_investors:r.array(r.string()).nullable().optional().describe(`Lead investors of last funding round`),last_funding_round_name:r.string().nullable().optional().describe(`Name of last funding round`),last_funding_round_num_investors:r.number().nullable().optional().describe(`Number of investors in last funding round`)})).nullable().optional().describe(`Work experience entries`),education:r.array(r.object({institute_name:r.string().nullable().optional().describe(`Institution name`),degree_name:r.string().nullable().optional().describe(`Degree name`),degrees:r.array(r.string()).nullable().optional().describe(`List of degrees`),field_of_study:r.string().nullable().optional().describe(`Field of study`),institute_linkedin_id:r.string().nullable().optional().describe(`Institution LinkedIn ID`),institute_linkedin_url:r.string().nullable().optional().describe(`Institution LinkedIn URL`),institute_logo_url:r.string().nullable().optional().describe(`Institution logo URL`),institution_city:r.string().nullable().optional().describe(`Institution city`),institution_state:r.string().nullable().optional().describe(`Institution state`),institution_country_iso2:r.string().nullable().optional().describe(`Institution country ISO2 code`),institution_country_iso3:r.string().nullable().optional().describe(`Institution country ISO3 code`),institution_regions:r.array(r.string()).nullable().optional().describe(`Institution regions`),institution_full_address:r.string().nullable().optional().describe(`Institution full address`),institution_street:r.string().nullable().optional().describe(`Institution street`),institution_zipcode:r.string().nullable().optional().describe(`Institution ZIP code`),start_date:r.union([r.string(),r.number()]).nullable().optional().describe(`Start date`),start_month:r.number().nullable().optional().describe(`Start month`),end_date:r.union([r.string(),r.number()]).nullable().optional().describe(`End date`),end_month:r.number().nullable().optional().describe(`End month`),description:r.string().nullable().optional().describe(`Description`),activities_and_societies:r.string().nullable().optional().describe(`Activities and societies`),order_in_profile:r.number().nullable().optional().describe(`Order in profile`)})).nullable().optional().describe(`Education history`),awards:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`Awards`),certifications:r.array(r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_month:r.number().nullable(),date_to_year:r.number().nullable()})).nullable().optional().describe(`Certifications`),organizations:r.array(r.object({organization_name:r.string().nullable().optional().describe(`Organization name`),position:r.string().nullable().optional().describe(`Position in organization`),description:r.string().nullable().optional().describe(`Organization description`),date_from_year:r.number().nullable().optional().describe(`Start year`),date_from_month:r.number().nullable().optional().describe(`Start month`),date_to_year:r.number().nullable().optional().describe(`End year`),date_to_month:r.number().nullable().optional().describe(`End month`)})).nullable().optional().describe(`Organizations`),patents:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`Patents`),projects:r.array(r.object({name:r.string().nullable().optional().describe(`Project name`),description:r.string().nullable().optional().describe(`Project description`),date_from_year:r.number().nullable().optional().describe(`Start year`),date_from_month:r.number().nullable().optional().describe(`Start month`),date_to_year:r.number().nullable().optional().describe(`End year`),date_to_month:r.number().nullable().optional().describe(`End month`)})).nullable().optional().describe(`Projects`),publications:r.array(r.object({title:r.string().nullable().optional().describe(`Publication title`),description:r.string().nullable().optional().describe(`Publication description`),publisher_names:r.string().nullable().optional().describe(`Publisher names`),date_year:r.number().nullable().optional().describe(`Publication year`),date_month:r.number().nullable().optional().describe(`Publication month`)})).nullable().optional().describe(`Publications`),github_repos:r.array(r.record(r.string(),r.any())).nullable().optional().describe(`GitHub repositories`),embedding_info:r.object({similarity_score:r.number().nullable().optional().describe(`Embedding similarity score`)}).nullable().optional().describe(`Embedding metadata`)}),Zn={profile:{id:`444085232`,name:`John Do`,location:``,location_country:``,location_regions:[],headline:`Full Stack Engineer at Sample Corp and Devsu`,description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Nullam in fermentum dui. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,linkedin_url:`https://www.linkedin.com/in/john-doe-xx1bb01b54`,picture_permalink:`https://i.pravatar.cc/150`,connections_count:0,followers_count:509,is_working:!1,is_decision_maker:!1,total_experience_duration_months:0,projected_total_salary:0,post_count:0,posts:``,liked_posts:``,recommendations:``,recommendations_count:0,skills:`junit.sql.collections.dsl.pruebas.angularjs.continuous delivery.spring boot.scrum.factoring.education.perl.digital.database.registration.data entry.oracle.mockito.erp.software.workflow.javascript.ux.knockoutjs.bamboo.sonar.angular.construction.auditing.gobierno.unix.api.web services.php.tax.evaluation.administration.components.android.java.glassfish.projects.middleware.spring.angular js`.split(`.`),languages:[],courses:[],github_username:``,github_contributions_count:0},experience:[{employee_position_id:``,employee_title:`Software Engineer`,employer_name:`DevShop Inc.`,employee_description:null,employer_linkedin_description:`Software Development for sameple companies`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2020-12`,end_date:``,employee_location:null,employer_company_ids:[],employer_company_website_domains:[],location:null,is_current:!0,duration_months:`53.0`,department:`Engineering and Technical`,is_public:!1,company_id:`10239632.0`,company_annual_revenue:null,company_employees_count:`231.0`,company_followers_count:`45113.0`,company_founded_year:`2010`,company_hq_city:`Orlando`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_industry:`Software Development`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-corp-xyz`,company_name_alias:[`sightx`,`sightx inc.`],company_type:`Privately Held`,company_updates:[`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Nullam in fermentum dui. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis. Aliquam erat volutpat. Sed lobortis massa sit amet nunc iaculis, in rutrum est imperdiet.`,`Duis varius bibendum elit et dignissim. Maecenas consectetur efficitur leo a tempus. Pellentesque sodales viverra euismod. Fusce nibh est, condimentum eu nibh et, luctus bibendum massa. Fusce pulvinar commodo dolor, in mattis lacus mattis sit amet. Pellentesque finibus aliquam enim facilisis tempor. Nulla nec dui tincidunt, consequat arcu ut, facilisis elit. Suspendisse sodales neque mauris, sollicitudin efficitur turpis tempus sit amet. Curabitur a magna non nunc finibus congue vel congue nisl. `,`Duis varius bibendum elit et dignissim. Maecenas consectetur efficitur leo a tempus. Pellentesque sodales viverra euismod. Fusce nibh est, condimentum eu nibh et, luctus bibendum massa. Fusce pulvinar commodo dolor, in mattis lacus mattis sit amet. Pellentesque finibus aliquam enim facilisis tempor. Nulla nec dui tincidunt, consequat arcu ut, facilisis elit. Suspendisse sodales neque mauris, sollicitudin efficitur turpis tempus sit amet. Curabitur a magna non nunc finibus congue vel congue nisl. `],company_employee_reviews_aggregate_score:0,company_employee_reviews_count:0,competitors:[`forsta`,`semeon analytics`,`voxco`,`optimal workshop`],technologies_used:[`well`,`git`,`react`,`impact`,`symfony`,`selenium`,`linkedin`,`mongodb`],active_job_postings_count:0,active_job_postings_titles:[],last_funding_round_amount_raised:0,last_funding_round_announced_month:9,last_funding_round_announced_year:2022,last_funding_round_lead_investors:[`Sample Ventures`],last_funding_round_name:`Seed Round - Sample VC`,last_funding_round_num_investors:1},{employee_position_id:`400964.0`,employee_title:`Senior Software Engineer`,employer_name:`Sample Corp`,employee_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2016-04`,end_date:`2017-02`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`10.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`11288.0`,company_followers_count:`391437.0`,company_founded_year:`1893`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`Banking`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`26432675.0`,employee_title:`Docente Universitario`,employer_name:`Universidad Catรณlica de Honduras 'Nuestra Seรฑora Reina de la Paz'โ`,employee_description:null,employer_linkedin_description:`Higher Education ['education', 'science and education > education', 'academic programs', 'international collaborations', 'university', 'scholarships']`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2007`,end_date:`2012`,employee_location:`Tegucigalpa Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa Honduras`,is_current:!1,duration_months:`60.0`,department:`Education`,company_annual_revenue:null,company_employees_count:`496.0`,company_followers_count:`30251.0`,company_founded_year:`1993`,company_hq_city:null,company_hq_country:`Honduras`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],company_industry:`Higher Education`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/school/universidad-cat%c3%b3lica-de-honduras-%27nuestra-se%c3%b1ora-reina-de-la-paz%27`,company_type:`Educational`},{employee_position_id:`8250581.0`,employee_title:`Software Developer`,employer_name:`Lab4U`,employee_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_description:`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget semper ligula, at varius felis.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2013-09`,end_date:`2014-02`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`5.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`25.0`,company_followers_count:`6202.0`,company_founded_year:`2013`,company_hq_city:`San Francisco`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_industry:`Education Management`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`3634778.0`,employee_title:`Senior Software Engineer`,employer_name:`IDEATI S.A.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_id:``,employer_logo_url:``,start_date:`2019-12`,end_date:`2020-07`,employee_location:`Panama`,employer_company_ids:[],employer_company_website_domains:[],location:`Panama`,is_current:!1,duration_months:`7.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`18.0`,company_followers_count:`334.0`,company_founded_year:`2009`,company_hq_city:null,company_hq_country:`Panama`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],company_industry:`Software Development`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-corp-xyz`,company_type:`Privately Held`},{employee_position_id:null,employee_title:`Frontend Developer`,employer_name:`Acme Inc`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2009`,end_date:`2010`,employee_location:`Tegucigalpa, Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa, Honduras`,is_current:!1,duration_months:`12.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Technical Team Lead`,employer_name:`Direcciรณn Ejecutiva de Ingresos`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2010`,end_date:`2012`,employee_location:`Tegucigalpa, Honduras`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa, Honduras`,is_current:!1,duration_months:`24.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Analista Programador lรญder De Proyectos`,employer_name:`Acme Inc.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2006`,end_date:`2009`,employee_location:`Tegucigalpa`,employer_company_ids:[],employer_company_website_domains:[],location:`Tegucigalpa`,is_current:!1,duration_months:`36.0`,department:null,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:null,employee_title:`Senior Software Engineer`,employer_name:`Sample Crop.`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem. `,employer_linkedin_description:`[]`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2012`,end_date:`2013-09`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`20.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:null,company_followers_count:null,company_founded_year:null,company_hq_city:null,company_hq_country:null,company_hq_regions:[],company_industry:null,company_is_b2b:!1,company_linkedin_url:null,company_type:null},{employee_position_id:`519728.0`,employee_title:`Senior Software Engineer`,employer_name:`Sample Consulting Group`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2014-03`,end_date:`2015-09`,employee_location:`Santiago de Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago de Chile`,is_current:!1,duration_months:`18.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`68.0`,company_followers_count:`1167.0`,company_founded_year:`2001`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xzy`,company_type:`Privately Held`},{employee_position_id:`519728.0`,employee_title:`Senior Software Engineer`,employer_name:`XYZ Constulting Group`,employee_description:`Nullam sit amet quam at lacus luctus pulvinar sit amet et urna. Vestibulum at ante lacinia, euismod leo at, rutrum sapien. Fusce consequat tempus tempus. Integer nisl nisl, luctus sed ultrices nec, egestas sed sem.`,employer_linkedin_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2017-03`,end_date:`2019-08`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`29.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`68.0`,company_followers_count:`1167.0`,company_founded_year:`2001`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`},{employee_position_id:`11914719.0`,employee_title:`Senior Software Engineer`,employer_name:`SAMPL Inc.`,employee_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,employer_linkedin_id:``,employer_logo_url:``,start_date:`2015-10`,end_date:`2016-03`,employee_location:`Santiago Province, Chile`,employer_company_ids:[],employer_company_website_domains:[],location:`Santiago Province, Chile`,is_current:!1,duration_months:`5.0`,department:`Engineering and Technical`,company_annual_revenue:null,company_employees_count:`36.0`,company_followers_count:`2746.0`,company_founded_year:`2002`,company_hq_city:null,company_hq_country:`Chile`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_industry:`IT Services and IT Consulting`,company_is_b2b:!1,company_linkedin_url:`https://www.linkedin.com/company/sample-xyz`,company_type:`Privately Held`}],education:[{institute_name:`Sample University`,degree_name:`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`,degrees:[`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`],field_of_study:`Master of Information Technology, Computer Software Engineering, Maximum Distinction.`,institute_linkedin_id:``,institute_linkedin_url:`https://www.linkedin.com/school/usample`,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],institution_full_address:`Av. Libertador Bernardo O'Higgins 1058; Diagonal Paraguay 265, Torre 15; Santiago, 28330111, CL`,institution_street:``,institution_zipcode:``,start_date:`2012.0`,start_month:null,end_date:`2015.0`,end_month:null,description:`Sed elementum, mi nec euismod molestie, dui nulla luctus neque, ac tempor erat nibh quis odio. Curabitur volutpat lectus semper, laoreet nunc elementum, cursus diam. Sed porttitor justo nunc, in imperdiet arcu rhoncus et.`,activities_and_societies:null,order_in_profile:0},{institute_name:`Universidad Catรณlica de Honduras 'Nuestra Seรฑora Reina de la Paz'`,degree_name:`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`,degrees:[`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`],field_of_study:`Ingeniero en Ciencias de la Computaciรณn, Ingeniero en Ciencias de la Computaciรณn`,institute_linkedin_id:``,institute_linkedin_url:`https://www.linkedin.com/school/sample-inst'`,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[`Americas`,`Latin America and the Caribbean`,`Central America`,`AMER`],institution_full_address:`San Pedro Sula Col. Zeron 12 Calle 21 Ave. Calle al Hospiral Mario Catarino Rivas; Residencial Las Colinas, Ave. Bella Vista, Calle Principal, La Ceiba, Atlantida.; TEGUCIGALPA, FRANCISCO MORAZAN 4473, HN`,institution_street:``,institution_zipcode:``,start_date:`2002.0`,start_month:null,end_date:`2006.0`,end_month:null,description:null,activities_and_societies:null,order_in_profile:0},{institute_name:`Instituto Salesiano San Miguel`,degree_name:`Bachiller en Ciencias y Letras`,degrees:[`Bachiller en Ciencias y Letras`],field_of_study:`Bachiller en Ciencias y Letras`,institute_linkedin_id:``,institute_linkedin_url:null,institute_logo_url:``,institution_city:null,institution_state:null,institution_country_iso2:``,institution_country_iso3:``,institution_regions:[],institution_full_address:null,institution_street:``,institution_zipcode:``,start_date:`1991.0`,start_month:null,end_date:`2001.0`,end_month:null,description:null,activities_and_societies:null,order_in_profile:0}],awards:[],certifications:[{title:`Cloud Developer`,issuer:`Udacity`,date_from_year:2024,date_from_month:null,date_to_year:null,date_to_month:null},{title:`MCP - Developing and Implementing Web Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET`,issuer:`Microsoft`,date_from_year:2007,date_from_month:null,date_to_year:null,date_to_month:null}],organizations:[],patents:[],projects:[],publications:[],github_repos:[]},Qn=r.object({recommendation:r.string().nullable(),referee_full_name:r.string().nullable(),referee_url:r.string().nullable(),order_in_profile:r.number().nullable()}),$n=r.object({department:r.string().nullable(),management_level:r.string().nullable(),total_experience_duration_months:r.number().nullable()}),er=r.object({field_name:r.string().nullable(),change_type:r.string().nullable(),last_changed_at:r.string().nullable()}),tr=r.object({field_name:r.string().nullable(),last_changed_at:r.string().nullable()}),nr=r.object({id:r.string().nullable(),name:r.string().nullable(),full_name:r.string().nullable(),first_name:r.string().nullable(),first_name_initial:r.string().nullable(),middle_name:r.string().nullable(),middle_name_initial:r.string().nullable(),last_name:r.string().nullable(),last_name_initial:r.string().nullable(),headline:r.string().nullable(),description:r.string().nullable(),summary:r.string().nullable(),picture_permalink:r.string().nullable(),picture_url:r.string().nullable(),location:r.string().nullable(),location_full:r.string().nullable(),location_country:r.string().nullable(),location_city:r.string().nullable(),location_state:r.string().nullable(),location_country_iso2:r.string().nullable(),location_country_iso3:r.string().nullable(),location_regions:r.array(r.string()).nullable(),linkedin_url:r.string().nullable(),linkedin_shorthand_names:r.array(r.string()).nullable(),connections_count:r.number().nullable(),followers_count:r.number().nullable(),post_count:r.number().nullable(),posts:r.string().nullable(),liked_posts:r.string().nullable(),recommendations:r.array(Qn).nullable(),recommendations_count:r.number().nullable(),is_working:r.number().nullable(),is_decision_maker:r.number().nullable(),total_experience_duration_months:r.number().nullable(),total_experience_duration_months_breakdown_department:r.array($n).nullable(),total_experience_duration_months_breakdown_management_level:r.array($n).nullable(),active_experience_company_id:r.number().nullable(),active_experience_title:r.string().nullable(),active_experience_description:r.string().nullable(),active_experience_department:r.string().nullable(),active_experience_management_level:r.string().nullable(),skills:r.array(r.string()).nullable(),inferred_skills:r.array(r.string()).nullable(),historical_skills:r.array(r.string()).nullable(),interests:r.array(r.string()).nullable(),services:r.unknown().nullable(),last_graduation_date:r.number().nullable(),education_degrees:r.array(r.string()).nullable(),projected_total_salary:r.number().nullable(),projected_base_salary_p25:r.number().nullable(),projected_base_salary_median:r.number().nullable(),projected_base_salary_p75:r.number().nullable(),projected_base_salary_period:r.string().nullable(),projected_base_salary_currency:r.string().nullable(),projected_base_salary_updated_at:r.string().nullable(),projected_additional_salary_period:r.string().nullable(),projected_additional_salary_currency:r.string().nullable(),projected_additional_salary_updated_at:r.string().nullable(),projected_total_salary_p25:r.number().nullable(),projected_total_salary_median:r.number().nullable(),projected_total_salary_p75:r.number().nullable(),projected_total_salary_period:r.string().nullable(),projected_total_salary_currency:r.string().nullable(),projected_total_salary_updated_at:r.string().nullable(),projected_additional_salary:r.array(r.unknown()).nullable(),patents_count:r.number().nullable(),patents_topics:r.array(r.string()).nullable(),publications_count:r.number().nullable(),publications_topics:r.array(r.string()).nullable(),projects_count:r.number().nullable(),projects_topics:r.array(r.string()).nullable(),created_at:r.string().nullable(),updated_at:r.string().nullable(),checked_at:r.string().nullable(),changed_at:r.string().nullable(),experience_change_last_identified_at:r.string().nullable(),op_created_at:r.string().nullable(),op_updated_at:r.string().nullable(),profile_root_field_changes_summary:r.array(er).nullable(),profile_collection_field_changes_summary:r.array(tr).nullable(),experience_recently_started:r.array(r.unknown()).nullable(),experience_recently_closed:r.array(r.unknown()).nullable()}),rr=r.object({active_experience:r.number().nullable(),position_title:r.string().nullable(),department:r.string().nullable(),management_level:r.string().nullable(),location:r.string().nullable(),description:r.string().nullable(),date_from:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to:r.string().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable(),duration_months:r.number().nullable(),company_id:r.number().nullable(),company_name:r.string().nullable(),company_type:r.string().nullable(),company_founded_year:r.number().nullable(),company_followers_count:r.number().nullable(),company_website:r.string().nullable(),company_facebook_url:r.array(r.string()).nullable(),company_twitter_url:r.array(r.string()).nullable(),company_professional_network_url:r.string().nullable(),company_linkedin_url:r.string().nullable(),company_size_range:r.string().nullable(),company_employees_count:r.number().nullable(),company_industry:r.string().nullable(),company_categories_and_keywords:r.array(r.string()).nullable(),company_annual_revenue_source_1:r.number().nullable(),company_annual_revenue_currency_source_1:r.string().nullable(),company_annual_revenue_source_5:r.number().nullable(),company_annual_revenue_currency_source_5:r.string().nullable(),company_employees_count_change_yearly_percentage:r.number().nullable(),company_last_funding_round_date:r.string().nullable(),company_last_funding_round_amount_raised:r.number().nullable(),company_hq_full_address:r.string().nullable(),company_hq_country:r.string().nullable(),company_hq_regions:r.array(r.string()).nullable(),company_hq_country_iso2:r.string().nullable(),company_hq_country_iso3:r.string().nullable(),company_hq_city:r.string().nullable(),company_hq_state:r.string().nullable(),company_hq_street:r.string().nullable(),company_hq_zipcode:r.string().nullable(),company_last_updated_at:r.string().nullable(),company_stock_ticker:r.array(r.string()).nullable(),company_is_b2b:r.number().nullable(),order_in_profile:r.number().nullable()}),ir=r.object({degree:r.string().nullable(),description:r.string().nullable(),institution_url:r.string().nullable(),institution_name:r.string().nullable(),institution_full_address:r.string().nullable(),institution_country_iso2:r.string().nullable(),institution_country_iso3:r.string().nullable(),institution_regions:r.array(r.string()).nullable(),institution_city:r.string().nullable(),institution_state:r.string().nullable(),institution_street:r.string().nullable(),institution_zipcode:r.string().nullable(),date_from_year:r.number().nullable(),date_to_year:r.number().nullable(),activities_and_societies:r.string().nullable(),order_in_profile:r.number().nullable()}),ar=r.object({language:r.string().nullable(),proficiency:r.string().nullable(),order_in_profile:r.number().nullable()}),or=r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable()}),sr=r.object({name:r.string().nullable(),description:r.string().nullable(),date_from_year:r.number().nullable(),date_from_month:r.number().nullable(),date_to_year:r.number().nullable(),date_to_month:r.number().nullable()}),cr=r.object({reasoning:r.string().nullable(),answer:r.string().nullable()}),lr=r.object({profile:nr.nullable(),experience:r.array(rr),education:r.array(ir),languages:r.array(ar),awards:r.array(r.object({title:r.string().nullable(),issuer:r.string().nullable(),date_year:r.int().nullable(),date_month:r.int().nullable(),order_in_profile:r.int().nullable()})),certifications:r.array(or),organizations:r.array(r.object({organization_name:r.string().nullable(),position:r.string().nullable(),description:r.string().nullable(),date_from_year:r.int().nullable(),date_from_month:r.int().nullable(),date_to_year:r.int().nullable(),date_to_month:r.int().nullable()})),patents:r.array(r.object({title:r.string(),description:r.string().nullable(),status:r.string().nullable(),date_year:r.int().nullable(),date_month:r.int().nullable()})),projects:r.array(sr),publications:r.array(r.object({title:r.string().nullable(),description:r.string().nullable(),publisher_names:r.array(r.string()).nullable(),date_year:r.int().nullable(),date_month:r.int().nullable()})),github_repos:r.array(r.object({name:r.string().nullable(),summary:r.string().nullable(),stars:r.int().nullable(),contributions_count:r.int().nullable()})),courses:r.array(r.object({organizer:r.string().nullable(),title:r.string(),order_in_profile:r.int()})),match_data:r.record(r.string(),cr).nullable()}),ur={profile:{id:`595453327`,name:`Mat Cole`,full_name:`Mat Col`,first_name:`Mat`,first_name_initial:`M`,middle_name:null,middle_name_initial:null,last_name:`Junior`,last_name_initial:`J`,headline:`Software Engineer`,description:`๐ Front: React, Angular, NextJs, Tailwind โ Back: Golang, Node, Python, Java (Springboot) ๐งฑ Infra: AWS, Terraform, Ansible, CI Pipelines, Kubernetes ๐จ Arch: Microservices, Monolith, DDD, Event Driven I turn coffee into code. As a dedicated student and practitioner of modern development practices, I am capable of contributing to all development steps on any software project from source to infrastructure and from planning to deployment. I do a lot of side projects. Some of them have made into small commercial solutions. Others helped me advance my knowledge and development technique. One time I made a WhatsApp broadcasting system(it was like a mailing list but for WhatsApp). Angular and Golang were the main technologies behind it. My employer at the time got really interested and bought the idea of trying it in production. It was a real success, the customer engagement was over the roof. Occasionally I contribute to open source projects. Now if I may. It's time to code ๐จ๐ปโ๐ป`,summary:`๐ Front: React, Angular, NextJs, Tailwind โ Back: Golang, Node, Python, Java (Springboot) ๐งฑ Infra: AWS, Terraform, Ansible, CI Pipelines, Kubernetes ๐จ Arch: Microservices, Monolith, DDD, Event Driven I turn coffee into code. As a dedicated student and practitioner of modern development practices, I am capable of contributing to all development steps on any software project from source to infrastructure and from planning to deployment. I do a lot of side projects. Some of them have made into small commercial solutions. Others helped me advance my knowledge and development technique. One time I made a WhatsApp broadcasting system(it was like a mailing list but for WhatsApp). Angular and Golang were the main technologies behind it. My employer at the time got really interested and bought the idea of trying it in production. It was a real success, the customer engagement was over the roof. Occasionally I contribute to open source projects. Now if I may. It's time to code ๐จ๐ปโ๐ป`,picture_permalink:`https://media.licdn.com/dms/image/v2/C4D03AQF_1Wt7RyfYZeQ/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1x616980064425?e=2147483647&v=beta&t=jzbQpbwytqaKglNQwcjRsyyhS4LFXo-f-6Reco1PsEs`,picture_url:`https://media.licdn.com/dms/image/v2/C4D03AQF_1Wft7RyYZeQ/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1x616980064425?e=2147483647&v=beta&t=jzbQpbwytqaKglNQwcjRsyyhS4LFXo-f-6Reco1PsEs`,location:`Berlin, Berlin, Germany`,location_full:`Berlin, Berlin, Germany`,location_country:`Germany`,location_city:`Berlin`,location_state:`Berlin`,location_country_iso2:`DE`,location_country_iso3:`DEU`,location_regions:[`Europe`,`Western Europe`,`EMEA`,`EU`],linkedin_url:`https://www.linkedin.com/in/mat-cole-11a821122`,linkedin_shorthand_names:[`mat`,`ma`],connections_count:196,followers_count:200,post_count:0,posts:``,liked_posts:``,recommendations:[{recommendation:`โFrom the first day Mateus started on our development projects he was active and engaged and that energy was consistent until his very last day working with us. We were thrilled to have him join us because of his experience and knowledge and we are extremely grateful for his contributions to our organization. Always professional and courteous and open to ask questions or offer help to his colleagues, Mateus was one of the most productive developers on the development team during his time with us.
|
|
2
2
|
|
|
3
3
|
In addition, Mateus is exceptional at translating technical details to business customers and his attention to detail is second to none. His personality and sense of humor left both internal and external team members feeling great after interacting with him and I highly recommend his services because I'm sure you will find the same joy in working with him that I did!โ`,referee_full_name:`Terrence Scoville`,referee_url:`https://www.linkedin.com/in/terrencescoville`,order_in_profile:1}],recommendations_count:1,is_working:1,is_decision_maker:0,total_experience_duration_months:98,total_experience_duration_months_breakdown_department:[{department:`C-Suite`,management_level:null,total_experience_duration_months:10},{department:`Other`,management_level:null,total_experience_duration_months:35},{department:`Engineering and Technical`,management_level:null,total_experience_duration_months:53}],total_experience_duration_months_breakdown_management_level:[{department:null,management_level:`Other`,total_experience_duration_months:35},{department:null,management_level:`Senior`,total_experience_duration_months:13},{department:null,management_level:`Founder`,total_experience_duration_months:10},{department:null,management_level:`Specialist`,total_experience_duration_months:40}],active_experience_company_id:11827332,active_experience_title:`Software Engineer`,active_experience_description:`- Took ownership on full-stack feature delivery across a 20+ microservice landscape (Java Spring, TypeScript/Node, React, Python, ..) while hardening architecture and resolving high-priority production issues. - Built internal automation & compliance tools (TS, Bash, Python) and CI/CD pipelines, leveraging Kubernetes, AWS and Terraform. - Designed and maintained comprehensive E2E/integration test suites (Cypress, Karate) integrated into DevOps pipelines, boosting release confidence and quality. - Acted as DevOps troubleshooterโdeep-dive debugging of Kubernetes clusters, AWS infrastructure and containerized servicesโto ensure platform reliability and scalability. Show less`,active_experience_department:`Engineering and Technical`,active_experience_management_level:`Specialist`,skills:[],inferred_skills:`react.angular.golang.python.java.aws.ansible.pipelines.kubernetes.microservices.coffee.software.infrastructure.planning.deployment.projects.commercial.broadcasting.production.engagement.automation.compliance.bash.integration.karate.devops.healthcare.django.testing.bitbucket.reliability.technology.typescript.jira.marketing.rates.designs.responsiveness.css.workflow.github.heroku.safe.docker.gitlab.security.risk.cloud.spring.architecture.mobile.api.purchasing.intelligence.pricing.analysis.customer engagement.open source.consumer marketing.performance testing.evidence collection.cost analysis`.split(`.`),historical_skills:[],interests:[],services:null,last_graduation_date:2015,education_degrees:[`Computer Science`],projected_total_salary:0,projected_base_salary_p25:null,projected_base_salary_median:null,projected_base_salary_p75:null,projected_base_salary_period:null,projected_base_salary_currency:null,projected_base_salary_updated_at:null,projected_additional_salary_period:null,projected_additional_salary_currency:null,projected_additional_salary_updated_at:null,projected_total_salary_p25:null,projected_total_salary_median:null,projected_total_salary_p75:null,projected_total_salary_period:null,projected_total_salary_currency:null,projected_total_salary_updated_at:null,projected_additional_salary:[],patents_count:null,patents_topics:[],publications_count:null,publications_topics:[],projects_count:1,projects_topics:[`Outline`],created_at:`2022-10-24T05:04:06.000Z`,updated_at:`2025-10-23T10:00:59.815999Z`,checked_at:`2025-10-23T10:00:59.815999Z`,changed_at:`2025-10-23T10:00:59.815999Z`,experience_change_last_identified_at:null,op_created_at:``,op_updated_at:``,profile_root_field_changes_summary:[{field_name:`profile_photo_url`,change_type:`new`,last_changed_at:`2025-05-11 15:33:04.771773`},{field_name:`canonical_shorthand_name`,change_type:`updated`,last_changed_at:`2025-05-11 15:33:04.771773`},{field_name:`connections_count`,change_type:`updated`,last_changed_at:`2025-10-23 10:00:59.815999`},{field_name:`profile_photo_url`,change_type:`deleted`,last_changed_at:`2025-02-22 01:37:54.056261`},{field_name:`summary`,change_type:`new`,last_changed_at:`2025-05-11 15:33:04.771773`},{field_name:`follower_count`,change_type:`updated`,last_changed_at:`2025-10-23 10:00:59.815999`},{field_name:`summary`,change_type:`updated`,last_changed_at:`2025-05-19 03:20:24.893504`}],profile_collection_field_changes_summary:[{field_name:`education`,last_changed_at:`2025-10-23 10:00:59.815999`},{field_name:`experience`,last_changed_at:`2025-10-23 10:00:59.815999`},{field_name:`activity`,last_changed_at:`2025-10-23 10:00:59.815999`},{field_name:`certifications`,last_changed_at:`2025-10-23 10:00:59.815999`}],experience_recently_started:[],experience_recently_closed:[]},experience:[{active_experience:1,position_title:`Software Engineer`,department:`Engineering and Technical`,management_level:`Specialist`,location:`Berlin, Germany`,description:`- Took ownership on full-stack feature delivery across a 20+ microservice landscape (Java Spring, TypeScript/Node, React, Python, ..) while hardening architecture and resolving high-priority production issues. - Built internal automation & compliance tools (TS, Bash, Python) and CI/CD pipelines, leveraging Kubernetes, AWS and Terraform. - Designed and maintained comprehensive E2E/integration test suites (Cypress, Karate) integrated into DevOps pipelines, boosting release confidence and quality. - Acted as DevOps troubleshooterโdeep-dive debugging of Kubernetes clusters, AWS infrastructure and containerized servicesโto ensure platform reliability and scalability. Show less`,date_from:`September 2023`,date_from_year:2023,date_from_month:9,date_to:null,date_to_year:null,date_to_month:null,duration_months:25,company_id:11827332,company_name:`Sample`,company_type:`Partnership`,company_founded_year:2013,company_followers_count:14325,company_website:`https://www.sample.com`,company_facebook_url:[`https://www.facebook.com/sample`],company_twitter_url:[`https://www.twitter.com/sample`],company_professional_network_url:null,company_linkedin_url:`https://www.linkedin.com/company/sample`,company_size_range:`51-200 employees`,company_employees_count:153,company_industry:`Hospitals and Health Care`,company_categories_and_keywords:`technology.health care software.vendor-neutral archives (vna) software.sample.vendor-neutral archives (vna).health > health - other (in united states).operating room integration.performance management.healthcare it.digital health.surgical workflow technology.clinical reporting.surgical content management.surgical software.medtech.software.iot.audio.video.digital or.surgery.ai.technologies.computer mouses.gadgets.keyboards.fitness bracelets.artificial-intelligence.automation.healthtech.platform.surgical-solutions.health care.hospital`.split(`.`),company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:289e5,company_annual_revenue_currency_source_5:`USD`,company_employees_count_change_yearly_percentage:-15.469613259668508,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:`San Francisco, CA, US`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_hq_country_iso2:`US`,company_hq_country_iso3:`USA`,company_hq_city:`San Francisco`,company_hq_state:`California`,company_hq_street:``,company_hq_zipcode:``,company_last_updated_at:`2025-09-07`,company_stock_ticker:[],company_is_b2b:0,order_in_profile:1},{active_experience:0,position_title:`Senior QA Automation Engineer (SDET)`,department:`Engineering and Technical`,management_level:`Senior`,location:`Fortaleza, Cearรก, Brazil`,description:`- Acted as DevOps troubleshooterโdeep-dive debugging of Kubernetes clusters, AWS infrastructure and containerized servicesโto ensure platform reliability and scalability. - Led end-to-end automation for an AI-driven surgical platform, crafting robust Cypress and Karate automated suites integrated into DevOps pipelines, boosting release confidence and quality to 20+ microservices. - Designed and maintained GitLab CI/CD pipelines that embedded testing, security scans, and compliance gatesโcutting release times and defect rates. - Conducted risk-based load, and performance testing, surfacing critical issues before production and boosting platform reliability. - Automated evidence-collection and other regulatory workflows with TypeScript and Bash, including a full on-prem-to-cloud Jira migration. - Took ownership on full-stack feature delivery across a 20+ microservice landscape (Java Spring, TypeScript/Node, React, Python, ..) while hardening architecture and resolving high-priority production issues. - Authored test architecture standards and documentation aligned with healthcare regulations (e.g., HDS), ensuring audit readiness. Show less`,date_from:`August 2022`,date_from_year:2022,date_from_month:8,date_to:`September 2023`,date_to_year:2023,date_to_month:9,duration_months:13,company_id:12256598,company_name:`Sample`,company_type:`Privately Held`,company_founded_year:null,company_followers_count:121642,company_website:`https://www.sample.com`,company_facebook_url:[`https://www.facebook.com/sample`],company_twitter_url:[`https://www.twitter.com/sample`],company_professional_network_url:null,company_linkedin_url:`https://www.linkedin.com/company/sample`,company_size_range:`501-1000 employees`,company_employees_count:519,company_industry:`Software Development`,company_categories_and_keywords:`technology/software development.staffing agencies.sample.computers electronics and technology > programming and developer software.enterprise platforms.business solutions.salesforce.adobe solutions.servicenow.digital product development.saas.custom development.team and staff augmentation services.power platform.microsoft business applications (crm.field services.marketing automation.erp).powerbi.copilot studio.genai projects.microsoft dynamics 365.adobe experience platform.adobe experience management.marketo engage.workfront.personalization.analytics.business transformation.digital transformation.custom software development.platform optimization.customer experience solutions.outsourcing.software.staffing agency`.split(`.`),company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:19e6,company_annual_revenue_currency_source_5:`USD`,company_employees_count_change_yearly_percentage:61.18012422360248,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:`Vine St; 1601 6th Floor; Los Angeles , California 90028, US`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_hq_country_iso2:`US`,company_hq_country_iso3:`USA`,company_hq_city:`Los Angeles`,company_hq_state:`California`,company_hq_street:`Vine St 1601 6th Floor`,company_hq_zipcode:`90028`,company_last_updated_at:`2025-09-09`,company_stock_ticker:[],company_is_b2b:1,order_in_profile:2},{active_experience:0,position_title:`Frontend Web Developer`,department:`Engineering and Technical`,management_level:`Specialist`,location:`Fortaleza, Cearรก, Brasil`,description:`Record-time implementation of modern, conversion-focused web pages for California-based client (leader in direct-to-consumer marketing). - Delivered high-converting web pages for a leading direct-to-consumer marketing client, consistently meeting aggressive deadlines while maintaining quality standards - Engineered sophisticated animations and interactive elements using SCSS and Angular, enhancing user engagement and improving conversion rates - Translated complex Figma designs into pixel-perfect implementations with full responsiveness across all browsers and devices - Automated routine development tasks through custom Python and Shell scripts, reducing development time and improving team productivity. Technologies: - Angular & Ionic (multiple versions). - SCSS BEM for enterprise-level reusable stylesheets. - CSS and JS Animations for highly interactive designs. - AWS - Python for workflow automation and integration of JIRA, Github, Heroku, AWS. - Type-safe Python with MyPy (for automation workflow development) - Docker - PHP Show less`,date_from:`November 2021`,date_from_year:2021,date_from_month:11,date_to:`August 2022`,date_to_year:2022,date_to_month:8,duration_months:9,company_id:12256598,company_name:`sample`,company_type:`Privately Held`,company_founded_year:null,company_followers_count:121642,company_website:`https://www.sample.com`,company_facebook_url:[`https://www.facebook.com/sample`],company_twitter_url:[`https://www.twitter.com/_sample`],company_professional_network_url:null,company_linkedin_url:`https://www.linkedin.com/company/sample`,company_size_range:`501-1000 employees`,company_employees_count:519,company_industry:`Software Development`,company_categories_and_keywords:`technology/software development.staffing agencies.sample.computers electronics and technology > programming and developer software.enterprise platforms.business solutions.salesforce.adobe solutions.servicenow.digital product development.saas.custom development.team and staff augmentation services.power platform.microsoft business applications (crm.field services.marketing automation.erp).powerbi.copilot studio.genai projects.microsoft dynamics 365.adobe experience platform.adobe experience management.marketo engage.workfront.personalization.analytics.business transformation.digital transformation.custom software development.platform optimization.customer experience solutions.outsourcing.software.staffing agency`.split(`.`),company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:19e6,company_annual_revenue_currency_source_5:`USD`,company_employees_count_change_yearly_percentage:61.18012422360248,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:`Vine St; 1601 6th Floor; Los Angeles , California 90028, US`,company_hq_country:`United States`,company_hq_regions:[`Americas`,`Northern America`,`AMER`],company_hq_country_iso2:`US`,company_hq_country_iso3:`USA`,company_hq_city:`Los Angeles`,company_hq_state:`California`,company_hq_street:`Vine St 1601 6th Floor`,company_hq_zipcode:`90028`,company_last_updated_at:`2025-09-09`,company_stock_ticker:[],company_is_b2b:1,order_in_profile:3},{active_experience:0,position_title:`Software Engineer`,department:`Engineering and Technical`,management_level:`Specialist`,location:`Fortaleza, Cearรก, Brasil`,description:`Full stack feature development and maintenance for a major health provider in Brazil. - Engineered and implemented new features for a healthcare Angular web application with Django backend, ensuring quality through comprehensive unit and end-to-end Cypress testing - Architected and optimized AWS infrastructure deployments using Terraform and Bitbucket CI/CD pipelines, improving system reliability and deployment speed - Established and enforcedd code quality standards through rigorous code reviews, resulting in reduced defects and improved maintainability Technology: - Angular, - Python Django - Cypress - TypeScript - AWS - JIRA - Terraform - Ansible Show less`,date_from:`June 2021`,date_from_year:2021,date_from_month:6,date_to:`November 2021`,date_to_year:2021,date_to_month:11,duration_months:5,company_id:11060780,company_name:`sample`,company_type:`Privately Held`,company_founded_year:2017,company_followers_count:4283,company_website:`https://www.sample.com.br`,company_facebook_url:[],company_twitter_url:[],company_professional_network_url:null,company_linkedin_url:`https://www.linkedin.com/company/sample-software`,company_size_range:`51-200 employees`,company_employees_count:52,company_industry:`Software Development`,company_categories_and_keywords:[`technology/software`,`industry: n/a`,`innovation`,`consulting`,`design`,`technology`,`software`,`health care`,`information technology`,`innovation management`],company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:null,company_annual_revenue_currency_source_5:null,company_employees_count_change_yearly_percentage:-24.637681159420293,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:`Av. Dom Manuel, 1020 - Centro, Fortaleza - CE, 60060-090; Fortaleza, Cearรก, BR`,company_hq_country:`Brazil`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_hq_country_iso2:`BR`,company_hq_country_iso3:`BRA`,company_hq_city:null,company_hq_state:null,company_hq_street:null,company_hq_zipcode:null,company_last_updated_at:`2025-09-08`,company_stock_ticker:[],company_is_b2b:1,order_in_profile:4},{active_experience:0,position_title:`Software Engineer Operational Support`,department:null,management_level:null,location:`Fortaleza, Cearรก, Brasil`,description:`- Generated huge revenue boosts and spectacular client engagement by writing a golang system to send personalized mass messages on WhatsApp. (it was forked from a personal project I was working at) - Developed a React NextJS PWA(Progressive Web Application) solution for mobile stock inventorying and deployed it to AWS using Terraform. - Coded a Golang service and a Python API to integrate the business's online store with its internal systems and mirror entries, prices, and stock. - Implemented a full online store using Woo-commerce, PHP, Js, Nginx, MySQL and set it up on a private VPS Show less`,date_from:`June 2018`,date_from_year:2018,date_from_month:6,date_to:`May 2021`,date_to_year:2021,date_to_month:5,duration_months:35,company_id:82003867,company_name:`sample`,company_type:`Privately Held`,company_founded_year:null,company_followers_count:0,company_website:`https://www.sample.com.br`,company_facebook_url:[`https://www.facebook.com/sample`],company_twitter_url:[],company_professional_network_url:null,company_linkedin_url:`https://www.linkedin.com/company/sample`,company_size_range:null,company_employees_count:10,company_industry:`Retail`,company_categories_and_keywords:[`construction`,`industry: n/a`,`tools`,`electrical materials`,`construction materials`,`hydraulic materials`],company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:null,company_annual_revenue_currency_source_5:null,company_employees_count_change_yearly_percentage:0,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:`Juiz de Fora, 36025-000, br`,company_hq_country:`Brazil`,company_hq_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],company_hq_country_iso2:`BR`,company_hq_country_iso3:`BRA`,company_hq_city:null,company_hq_state:null,company_hq_street:null,company_hq_zipcode:null,company_last_updated_at:`2025-09-04`,company_stock_ticker:[],company_is_b2b:0,order_in_profile:5},{active_experience:0,position_title:`CEO Founder`,department:`C-Suite`,management_level:`Founder`,location:`Fortaleza, Cearรก, Av gomes de matos, 1005`,description:`- Used tech to solve diverse business problems, increasing revenue and efficiency. - Developed a system for quotation execution and purchasing intelligence. - Developed systems for pricing, cost analysis, and product profit margins. - Built the company's visual identity by carrying out several design projects including the company logo, product catalog, flyers, business cards, and others...`,date_from:`May 2016`,date_from_year:2016,date_from_month:5,date_to:`March 2017`,date_to_year:2017,date_to_month:3,duration_months:10,company_id:null,company_name:`sample`,company_type:null,company_founded_year:null,company_followers_count:null,company_website:null,company_facebook_url:[],company_twitter_url:[],company_professional_network_url:null,company_linkedin_url:null,company_size_range:null,company_employees_count:null,company_industry:null,company_categories_and_keywords:[],company_annual_revenue_source_1:null,company_annual_revenue_currency_source_1:null,company_annual_revenue_source_5:null,company_annual_revenue_currency_source_5:null,company_employees_count_change_yearly_percentage:null,company_last_funding_round_date:null,company_last_funding_round_amount_raised:null,company_hq_full_address:null,company_hq_country:null,company_hq_regions:[],company_hq_country_iso2:null,company_hq_country_iso3:null,company_hq_city:null,company_hq_state:null,company_hq_street:null,company_hq_zipcode:null,company_last_updated_at:null,company_stock_ticker:[],company_is_b2b:null,order_in_profile:6}],education:[{degree:`Computer Science`,description:null,institution_url:`https://www.linkedin.com/school/ufcinforma`,institution_name:`Universidade Federal do Cearรก`,institution_full_address:`Avenida da Universidade 2853; Benfica; Fortaleza, Cearรก 60020-181, BR`,institution_country_iso2:`BR`,institution_country_iso3:`BRA`,institution_regions:[`Americas`,`Latin America and the Caribbean`,`South America`,`AMER`],institution_city:null,institution_state:null,institution_street:null,institution_zipcode:null,date_from_year:2013,date_to_year:2015,activities_and_societies:null,order_in_profile:1}],languages:[{language:`English`,proficiency:`Native or bilingual proficiency`,order_in_profile:1},{language:`Portuguese`,proficiency:`Native or bilingual proficiency`,order_in_profile:2}],awards:[],certifications:[{title:`Business & Executive Coaching`,issuer:`Instituto Brasileiro de Coaching - IBC`,date_from_year:2018,date_from_month:11,date_to_year:null,date_to_month:null}],organizations:[],patents:[],projects:[{name:`Outline`,description:`Me tornei contribuidor do projeto do Outline. Uma ferramenta incrรญvel para notas estruturadas colaborativas(similar ao Notion e Confluence). Como diferencial, o Outline รฉ cรณdigo aberto e pode ser instalado nas premissas do negรณcio ou em uma nuvem privada.`,date_from_year:2021,date_from_month:6,date_to_year:null,date_to_month:null}],publications:[],github_repos:[],courses:[],match_data:{"Software Engineers in Berlin":{reasoning:`Profile lists current role as "Software Engineer" at sample in Berlin, Germany, with active_experience=1 and location="Berlin, Germany".`,answer:`YES`}}},dr=r.object({id:r.string(),name:r.string().nullable(),domain:r.string().nullable(),website:r.string().nullable(),type:r.string().nullable(),industry:r.string().nullable(),industries:r.array(r.string()).nullable(),categories:r.array(r.string()).nullable(),employees:r.number().nullable(),revenue:r.string().nullable(),description:r.string().nullable(),keywords:r.array(r.string()).nullable(),technologies:r.array(r.string()).nullable(),subsidiaries:r.array(r.string()).nullable(),founded_year:r.number().nullable(),naics_codes:r.array(r.string()).nullable(),location:r.object({country:r.object({code:r.string().nullable(),name:r.string().nullable(),latitude:r.number().nullable(),longitude:r.number().nullable()}).nullable(),state:r.object({id:r.number().nullable(),name:r.string().nullable(),code:r.string().nullable(),latitude:r.number().nullable(),longitude:r.number().nullable()}).nullable(),city:r.string().nullable(),address:r.string().nullable(),postal_code:r.string().nullable(),phone:r.string().nullable()}).nullable(),financial:r.object({stock_symbol:r.string().nullable(),stock_exchange:r.string().nullable(),total_funding:r.string().nullable(),funding_stage:r.string().nullable(),funding_date:r.string().nullable(),funding:r.string().nullable()}).nullable(),socials:r.object({linkedin_url:r.string().nullable(),linkedin_id:r.string().nullable(),twitter_url:r.string().nullable(),facebook_url:r.string().nullable(),instagram_url:r.string().nullable(),angellist_url:r.string().nullable(),crunchbase_url:r.string().nullable(),youtube_url:r.string().nullable(),g2_url:r.string().nullable()}).nullable(),page_rank:r.number().nullable(),logo_url:r.string().nullable(),seo_description:r.string().nullable(),updated_at:r.string().nullable()}),fr={id:`01924e72-a5ed-78ad-a3f4-67d61ec1af48`,name:`Cucumber`,domain:`cucumber.io`,website:`https://cucumber.io`,type:null,industry:`Business Services`,industries:[`Business Services/Custom Software & IT Services`,`Software`],categories:[`b2b`,`saas`],employees:null,revenue:`1m-10m`,description:`Cucumber is a tool for running automated acceptance tests, written in plain language, improving communication, collaboration, and trust among team members.`,keywords:[`automated testing`,`acceptance testing`,`plain language testing`,`software testing`,`test automation`,`behaviour-driven development`,`software training`,`agile development`,`collaborative software`,`specification management`,`software`],technologies:[`Route 53`,`Microsoft Office 365`,`Amazon AWS`,`Marketo`,`UptimeRobot`,`StatusPage IO`,`Adroll`,`Amazon-Cloudfront`,`Crazy-Egg`,`Facebook-Social-Plugins`,`Google-Analytics`,`Google-Tag-Manager`,`Kentico`,`Microsoft-Asp-Net`,`Microsoft-Iis`,`Microsot-365`,`React`],subsidiaries:null,founded_year:2013,naics_codes:[`541511`,`511210`],location:{country:{code:`GB`,name:`United Kingdom`,latitude:54,longitude:-2},state:{id:4793,name:`Scotland`,code:`SCT`,latitude:56.490673,longitude:-4.202646},city:null,address:null,postal_code:`PA24 8AN`,phone:`+1 617-684-2600`},financial:{stock_symbol:null,stock_exchange:null,total_funding:null,funding_stage:null,funding_date:null,funding:null},socials:{linkedin_url:`https://www.linkedin.com/company/3345003`,linkedin_id:null,twitter_url:`https://twitter.com/cucumberbdd`,facebook_url:`https://facebook.com/smartbear`,instagram_url:null,angellist_url:null,crunchbase_url:null,youtube_url:`https://youtube.com/user/smartbearsoftware`,g2_url:null},page_rank:5.52,logo_url:`https://api.companyenrich.com/companies/logo/01924e72-a5ed-78ad-a3f4-67d61ec1af48`,seo_description:`Cucumber develops and delivers tools for behavior-driven development that provides open source test automation solutions for businesses.`,updated_at:`2025-10-02T10:15:16.672609Z`};function pr(e){return r.looseObject({change_type:r.literal(e.changeType).describe(`Fires when ${e.what} changes. Branch on this key.`),field:r.literal(e.field).describe(`Crustdata's own dotted path for this leaf.`),type:r.literal(`changed`).describe("Scalar replacement โ carries `from` and `to`."),from:e.value.nullable().describe(`The value BEFORE the change โ ${e.what}. Null when the provider held no prior snapshot.`),to:e.value.nullable().describe(`The value AFTER the change โ ${e.what}.`),value:r.unknown().optional().describe("Null for a plain change; the threshold for a comparison operator (`>`, `<`, `=>`), none of which is registered today. Forwarded rather than dropped so one appearing is visible.")})}function mr(e){return r.looseObject({change_type:r.literal(e.changeType).describe(`Fires when ${e.what} appear. Branch on this key.`),field:r.literal(e.field).describe(`Crustdata's own dotted path for this leaf.`),type:r.literal(`added`).describe("Array growth โ carries `new_elements`."),new_elements:r.array(r.looseObject(e.element)).describe(`The ${e.what} that appeared on this run, exactly as Crustdata sent them. All of them, not just the first.`)})}const hr=r.looseObject({change_type:r.string().describe(`The raw dotted path, because this version maps no token for it. Seeing one here means the provider added a field worth mapping.`),field:r.string().describe(`Crustdata's own dotted path for this leaf.`),type:r.string().describe("`added` or `changed`, as the provider reported it.")}).describe(`A change this version of the catalog does not model yet.`);function gr(e){return r.union([r.discriminatedUnion(`change_type`,e),hr]).describe("One change within a notification, discriminated on `change_type`. Extra keys the provider sends are kept as-is.")}const _r=[mr({changeType:`funding_round`,field:`funding.milestones`,what:`funding rounds`,element:{round_type:r.string().nullable().describe(`Round label, e.g. "series_f", "Seed".`),amount_usd:r.number().nullable().describe(`Round size in USD. Null when undisclosed.`),date:r.string().nullable().describe(`Announcement date (YYYY-MM-DD).`),funding_date:r.string().nullable().describe("Funding date, usually equal to `date`."),investors:r.string().nullable().describe(`ALL investors as one COMMA-SEPARATED STRING, not an array โ e.g. "GIC, Accel, Tiger Global Management". Split it if you need them individually.`),lead_investors:r.string().nullable().describe(`Lead investors only, same comma-separated string shape.`),is_fund:r.boolean().nullable().describe(`True when the milestone is a fund raise by an investor rather than a startup round.`)}}),mr({changeType:`acquisition`,field:`funding.acquisitions`,what:`acquisitions the company made`,element:{acquiree_company_name:r.string().nullable().describe(`The company that was bought.`),acquiree_company_id:r.number().nullable().describe(`Crustdata id of the acquiree.`),acquiree_crunchbase_url:r.string().nullable().describe(`Crunchbase page for the acquiree.`),acquirer_company_name:r.string().nullable().describe(`The buyer โ the watched company on this row.`),acquirer_company_id:r.number().nullable().describe(`Crustdata id of the acquirer.`),acquirer_crunchbase_url:r.string().nullable().describe(`Crunchbase page for the acquirer.`),announced_on_date:r.string().nullable().describe(`Announcement date (YYYY-MM-DD).`),transaction_text:r.string().nullable().describe(`Free-text deal note. Frequently an empty string rather than null.`)}}),mr({changeType:`news`,field:`news`,what:`news articles`,element:{article_url:r.string().nullable().describe(`Link to the article. Crustdata sends NO body or summary, so this is the only route to the text โ feed it to website:markdown:parallel@1 or website:extract:parallel@1. The newest article's URL is also on the flat news_url column, which those pipes can bind directly.`),article_title:r.string().nullable().describe(`Headline as the publisher wrote it.`),article_publisher_name:r.string().nullable().describe(`Publication name, e.g. "SC Media".`),publisher_domain:r.string().nullable().describe(`Publication domain. Null for crunchbase-sourced items.`),article_publish_date:r.string().nullable().describe("Publication date (YYYY-MM-DD). Occasionally `1970-01-01` โ treat an epoch-zero date as unknown rather than as very old."),source:r.string().nullable().describe(`Where Crustdata found it โ observed values are "google_news" and "crunchbase".`),confidence_score:r.number().nullable().describe(`How confident Crustdata is that the article is about THIS company. Always null for crunchbase-sourced items, and an imperfect guide even when present โ articles scoring 0.95 have turned out not to be about the company at all. Treat news as a lead, not a fact.`)}}),pr({changeType:`headcount`,field:`headcount.total`,value:r.number(),what:`the company's total tracked employee count`}),pr({changeType:`hiring`,field:`hiring.openings_count`,value:r.number(),what:`the number of open roles the company is advertising`}),pr({changeType:`industry`,field:`taxonomy.professional_network_industry`,value:r.string(),what:`the company's primary industry label`}),pr({changeType:`hq_relocation`,field:`locations.country`,value:r.string(),what:`the company's HQ country`}),pr({changeType:`rebrand`,field:`basic_info.name`,value:r.string(),what:`the company's name`})],aee=r.object({changed_fields:r.array(r.string()).describe("Just the dotted paths that changed, for filtering. The cheapest thing to branch on: `funding.milestones` means they raised."),changes:r.array(gr(_r)).describe("Every change in this notification. Crustdata folds a company's whole run into ONE notification, so several entries here is the normal case. Read by predicate, not position โ e.g. `changes[change_type='news'].new_elements[].article_url`."),all_domains:r.array(r.string()).describe("Every domain Crustdata knows for this company. Load-bearing for joining back to your own account list: enrolling `personio.de` yields a record whose canonical domain is `personio.com`, so the company_domain column will not always equal what you enrolled โ match against this array instead."),crustdata_company_id:r.number().nullable().describe(`Crustdata's stable id for the company, for correlating across their APIs. Here rather than in crustdata_company_match_v2 for the same reason the person stream keeps its id here.`),detected_at:r.string().describe(`When Crustdata delivered this notification โ NOT when the change happened. A company profile is only visible once they refresh the record.`),watch_id:r.number().nullable().describe(`The Crustdata watch this came from. Useful when reconciling their billing.`),truncated:r.boolean().describe(`True when the run had MORE changes than the per-run cap allowed, so some were dropped. A persistent true means the spend ceiling is throttling real signal and wants raising.`)}).describe(`One Crustdata company change`),oee={changed_fields:[`news`],changes:[{change_type:`news`,field:`news`,type:`added`,new_elements:[{article_url:`https://www.scworld.com/brief/vercel-offers-1-million-to-hackers-for-breaking-its-security-sandbox`,article_title:`Vercel offers $1 million in bounties for sandbox hacks`,article_publisher_name:`SC Media`,publisher_domain:`scworld.com`,article_publish_date:`2026-08-21`,source:`google_news`,confidence_score:.92}]}],all_domains:[`vercel.com`,`nextjs.org`,`turborepo.com`,`vercel.ai`],crustdata_company_id:631347,detected_at:`2026-08-23T04:04:28.168658Z`,watch_id:48141,truncated:!1},see=r.array(r.object({confidence_score:r.number(),name:r.string().nullable(),primary_domain:r.string().nullable(),all_domains:r.array(r.string()),website:r.string().nullable(),professional_network_url:r.string().nullable(),professional_network_id:r.string().nullable(),profile_name:r.string().nullable(),logo_permalink:r.string().nullable(),description:r.string().nullable(),company_type:r.string().nullable(),year_founded:r.number().int().nullable(),employee_count_range:r.string().nullable(),markets:r.array(r.string()).nullable(),industries:r.array(r.string()).nullable(),social_profiles:r.unknown()})),cee=[{confidence_score:1,name:`Samsung Electronics America`,primary_domain:`samsung.com`,all_domains:[`samsung.com`],website:`http://www.samsung.com/us/`,professional_network_url:`https://www.linkedin.com/company/samsung-electronics-america`,professional_network_id:`1447520`,profile_name:`Samsung Electronics America`,logo_permalink:`https://crustdata-media.s3.us-east-2.amazonaws.com/company/ada6bbcc640f3f6943eb82501500e4960e39f8e6446952a8b59ebeadaafba538.jpg`,description:null,company_type:null,year_founded:null,employee_count_range:`5001-10000`,markets:null,industries:[`Computers and Electronics Manufacturing`,`Manufacturing`],social_profiles:null},{confidence_score:1,name:`Samsung India`,primary_domain:`samsung.com`,all_domains:[`samsung.com`],website:`https://samsung.com/in/`,professional_network_url:`https://www.linkedin.com/company/samsung-india`,professional_network_id:`13749561`,profile_name:`Samsung India`,logo_permalink:`https://crustdata-media.s3.us-east-2.amazonaws.com/company/9d9f71122023cb760c9fc5240def5c7ddc3343c013441193ff4f40699e8d31b5.jpg`,description:null,company_type:null,year_founded:null,employee_count_range:`10001+`,markets:null,industries:[`Computers and Electronics Manufacturing`,`Manufacturing`],social_profiles:null}],lee=r.object({company_id:r.number().int().positive(),year_founded:r.number().int(),crunchbase_valuation_usd:r.number().int().nonnegative(),last_funding_round_investment_usd:r.number().int().nonnegative(),estimated_revenue_lower_bound_usd:r.number().int().nonnegative(),estimated_revenue_higher_bound_usd:r.number().int().nonnegative(),crunchbase_total_investment_usd:r.number().int().nonnegative(),crunchbase_valuation_lower_bound_usd:r.number().int().nonnegative(),company_name:r.string().min(1),hq_country:r.string().min(1),hq_street_address_and_city:r.string().min(1),largest_headcount_country:r.string().min(1),crunchbase_uuid:r.string().uuid(),linkedin_profile_name:r.string().min(1),linkedin_profile_url:r.url(),linkedin_id:r.string().min(1),linkedin_company_description:r.string().min(1),last_funding_round_type:r.string(),hq_location:r.string().min(1),employee_count_range:r.string().regex(/^\d+-(\d+|[A-Za-z]+)$/),company_type:r.string().min(1),company_website:r.url(),company_website_domain:r.string().min(1),crunchbase_profile_url:r.url(),acquisition_status:r.string(),fiscal_year_end:r.string(),twitter_profile_url:r.url().optional(),twitter_handle:r.string().optional(),crunchbase_valuation_date:r.iso.datetime(),ipo_date:r.iso.datetime(),last_funding_date:r.iso.datetime(),growth_calculation_date:r.iso.datetime(),updated_at:r.iso.datetime(),indexed_at:r.iso.datetime(),linkedin_industries:r.array(r.string()),linkedin_categories:r.array(r.string()),office_addresses:r.array(r.string()),crunchbase_investors:r.array(r.string()),crunchbase_categories:r.array(r.string()),competitor_ids:r.array(r.string()),competitor_websites:r.array(r.url().or(r.string().min(1))),stock_symbols:r.array(r.string()),markets:r.array(r.string()),tracxn_investors:r.array(r.string()),employee_metrics:r.object({latest_count:r.number().int().nonnegative(),growth_1m:r.number().int(),growth_3m:r.number().int(),growth_6m:r.number().int(),growth_12m:r.number().int(),growth_1m_percent:r.number(),growth_3m_percent:r.number(),growth_6m_percent:r.number(),growth_12m_percent:r.number()}),follower_metrics:r.object({latest_count:r.number().int().nonnegative(),growth_1m:r.number().int(),growth_3m:r.number().int(),growth_6m:r.number().int(),growth_12m:r.number().int(),growth_1m_percent:r.number(),growth_3m_percent:r.number(),growth_6m_percent:r.number(),growth_12m_percent:r.number()}),skill_distribution:r.record(r.string(),r.number().int().nonnegative()),skill_distribution_percent:r.record(r.string(),r.number().int().nonnegative()),role_distribution:r.record(r.string(),r.number().int().nonnegative()),role_distribution_percent:r.record(r.string(),r.number().nonnegative()),role_growth_6m:r.record(r.string(),r.number().nullable()),role_growth_yoy:r.record(r.string(),r.number().nullable()),region_distribution:r.record(r.string(),r.number().int().nonnegative())}),uee={company_id:5870,company_name:`Tricentis`,year_founded:2007,hq_country:`USA`,hq_street_address_and_city:`5301 Southwest Parkway Building 2, Suite 200, Austin`,largest_headcount_country:`USA`,crunchbase_uuid:`499ae2f1-1bcf-eeb6-3c55-30bd78788b38`,crunchbase_valuation_usd:0,crunchbase_valuation_date:`1900-01-01T00:00:00`,linkedin_industries:[`Information Technology & Services`,`Computer Software`,`Software Development`],linkedin_profile_name:`Tricentis`,linkedin_profile_url:`https://www.linkedin.com/company/tricentis`,linkedin_id:`656215`,linkedin_categories:[`Software Testing`,`Test Automation`,`Mobile Testing`,`SAP Testing`,`Continuous Testing`,`Load Testing`,`Performance Testing`,`Test Management`,`DevOps`,`Quality Engineering`,`Generative AI`,`Artificial Intelligence`,`Quality Assurance`,`Data Integrity`,`Digital Transformation`,`Oracle Testing`,`ERP`,`Application Testing`],linkedin_company_description:`Tricentis is a global leader in continuous testing and quality engineering. The Tricentis AI-powered, continuous testing platform provides a new and fundamentally different way to perform software testing. An approach thatโs totally automated, fully codeless, and intelligently driven by AI. It addresses both agile development and complex enterprise apps, enabling enterprises to accelerate their digital transformation by dramatically increasing software release speed, reducing costs, and improving software quality. Widely credited for reinventing software testing for DevOps, cloud, and enterprise applications, Tricentis has been recognized as a leader by major industry analysts, including Forrester, Gartner, and IDC. Tricentis has more than 2,500 customers, including the largest brands in the world, such as McKesson, Accenture, Allianz, Telstra, Dolby, and Vodafone.`,last_funding_round_type:``,last_funding_round_investment_usd:0,hq_location:`Austin, Texas, United States`,office_addresses:[`Leonard-Bernstein Straรe 10, Vienna, 1220, AT`,`80 Cheapside, London, England, EC2V 6EE, GB`,`Flughafenstraรe 52a, Hamburg, 22335, DE`,`Monarch Tower 3424 Peachtree Rd NE , Atlanta, GA, 30326, US`,`389 av. du chรขteau de Jouques, Gรฉmenos, 13420, FR`,`Regus Spaces Richtistrasse 2-6, Wallisellen, 8304, CH`,`Tech Center, Rajiv Gandhi Infotech Park, MIDC, Hinjewadi, Pune, 411057, IN`,`109 North Bridge Road, Singapore, 228208, SG`,`200 Summit Dr, Burlington, Massachusetts, 01803, US`,`Boudnรญkova 2538/11, Prague 8, 180 00, CZ`,`Bos en Lommerplein 270-300, 1055 RW Amsterdam, North Holland, NL`,`University Business Park ul. Wรณlczaลska 178, ลรณdลบ, 90-530, PL`,`Nybrogatan 17, Stockholm, Stockholm County, 114 39, SE`,`120 Spencer Street, Melbourne, Victoria, 3000, AU`,`2-12 Foveaux Street, Surry Hills, New South Wales, 2010, AU`,`Vlnฤna 526/7, Brno, 602 00, CZ`,`28 Haarbaa Street, Tel Aviv, IL`,`8300 Greensboro Dr Ste 250, McLean, Virginia, 22102, US`,`Regus La Defense Tour CB21 16 Place de I'lris LA DEFENSE 92400, Paris, FR`,`9 Parliament Street, Cork, IE`,`Yeouido Station #16-111 20F, 83, Uisadang-daero Yeongdeugpo-gu, Seoul, 07325, KR`,`Kaiserwetterstrasse 215, Dusseldorf, DE`,`SM Aura Office Tower, 11th Floor, SM Aura Premier Office Tower, McKinley Parkway, Bonifacio Global City, Taguig City, PH`],estimated_revenue_lower_bound_usd:5e8,estimated_revenue_higher_bound_usd:1e9,employee_count_range:`1001-5000`,company_type:`Privately Held`,company_website:`http://www.tricentis.com`,company_website_domain:`tricentis.com`,crunchbase_total_investment_usd:1502e6,crunchbase_profile_url:`https://crunchbase.com/organization/tricentis`,acquisition_status:``,ipo_date:`1900-01-01T00:00:00`,crunchbase_valuation_lower_bound_usd:0,crunchbase_investors:[`Wipro Ventures`,`GTCR`,`ViewPoint Capital Partners`,`Claret Capital Partners`,`Insight Partners`],crunchbase_categories:[`Artificial Intelligence (AI)`,`Information Technology`,`Artificial Intelligence`,`Business Process Automation (BPA)`,`DevOps`,`Software`,`Enterprise Software`,`Virtualization`,`Quality Assurance`],twitter_profile_url:`http://twitter.com/tricentis`,twitter_handle:`tricentis`,last_funding_date:`2024-11-26T00:00:00`,competitor_ids:[`792404`,`904228`,`13819`,`10348`,`680066`,`896959`,`783605`,`25518`,`663396`,`667267`,`635996`,`719315`,`689401`,`634796`,`783942`],competitor_websites:[`http://www.cenzic.com`,`https://testifi.io`,`http://www.testvagrant.com`,`https://www.simplify3x.com`,`https://www.agilitest.com`,`euro-testing.com`,`http://www.parasoft.com`,`http://www.insonix.com`,`http://www.quali.com/`,`https://bit.ly/3sWIw9Z`,`https://testim.io/`,`http://www.agitar.com`,`https://testsigma.com`,`http://www.getzephyr.com/`,`https://cyclelabs.io`],stock_symbols:[`TRICENTIS`],markets:[`PRIVATE`],tracxn_investors:[``],fiscal_year_end:``,growth_calculation_date:`2025-09-05T00:00:00`,employee_metrics:{latest_count:1628,growth_1m:-2,growth_3m:45,growth_6m:61,growth_12m:113,growth_1m_percent:-.1226993865030675,growth_3m_percent:2.8427037271004423,growth_6m_percent:3.89278876834716,growth_12m_percent:7.45874587458746},follower_metrics:{latest_count:107809,growth_1m:107809,growth_3m:2887,growth_6m:107809,growth_12m:107809,growth_1m_percent:0,growth_3m_percent:2.751567831341377,growth_6m_percent:0,growth_12m_percent:0},skill_distribution:{"Enterprise Software":285,Leadership:427,Sales:340,Communication:330,"Project Management":424,"Software as a Service (SaaS)":339,"Business Development":293,"Microsoft Excel":268,"Customer Relationship Management (CRM)":307,"Microsoft Office":362,"Customer Service":301,Management:478,"Agile Methodologies":318,"Cloud Computing":306,"Software Development":263,SQL:337},skill_distribution_percent:{"Enterprise Software":5,Leadership:8,Sales:6,Communication:6,"Project Management":8,"Software as a Service (SaaS)":6,"Business Development":5,"Microsoft Excel":5,"Customer Relationship Management (CRM)":6,"Microsoft Office":7,"Customer Service":6,Management:9,"Agile Methodologies":6,"Cloud Computing":6,"Software Development":5,SQL:6},role_distribution:{Engineering:411,"Customer Success and Support":156,Legal:19,Operations:45,Consulting:54,Sales:306,"Military and Protective Services":4,Administrative:29,"Arts and Design":33,"Business Development":113,Research:17,Support:83,Marketing:84,"Product Management":43,Purchasing:6,"Program and Project Management":23,"Community and Social Services":2,"Information Technology":186,Entrepreneurship:9,"Human Resources":50,Education:19,"Quality Assurance":26,Accounting:21,Finance:34,"Media and Communication":34},role_distribution_percent:{Engineering:23,"Customer Success and Support":9,Legal:1,Operations:2,Consulting:3,Sales:17,"Military and Protective Services":0,Administrative:2,"Arts and Design":2,"Business Development":6,Research:1,Support:5,Marketing:5,"Product Management":2,Purchasing:0,"Program and Project Management":1,"Community and Social Services":0,"Information Technology":10,Entrepreneurship:0,"Human Resources":3,Education:1,"Quality Assurance":1,Accounting:1,Finance:2,"Media and Communication":2},role_growth_6m:{Engineering:7.310704960835509,"Customer Success and Support":100,Legal:18.75,Operations:-4.25531914893617,Consulting:-14.285714285714285,Sales:15.471698113207546,"Military and Protective Services":0,Administrative:-9.375,"Arts and Design":10,"Business Development":-11.71875,Research:70,Support:null,Marketing:6.329113924050633,"Product Management":2.380952380952381,Purchasing:20,"Program and Project Management":4.545454545454546,"Community and Social Services":0,"Information Technology":5.681818181818182,Entrepreneurship:-18.181818181818183,"Human Resources":6.382978723404255,Education:18.75,"Quality Assurance":18.181818181818183,Accounting:0,Finance:78.94736842105263,"Media and Communication":100},role_growth_yoy:{Engineering:12.602739726027398,"Customer Success and Support":81.3953488372093,Legal:26.666666666666668,Operations:4.651162790697675,Consulting:-22.857142857142858,Sales:35.39823008849557,"Military and Protective Services":33.33333333333333,Administrative:-6.451612903225806,"Arts and Design":22.22222222222222,"Business Development":-5.833333333333333,Research:54.54545454545454,Support:null,Marketing:15.068493150684931,"Product Management":-2.272727272727273,Purchasing:50,"Program and Project Management":-11.538461538461538,"Community and Social Services":0,"Information Technology":-1.0638297872340425,Entrepreneurship:0,"Human Resources":16.27906976744186,Education:46.15384615384615,"Quality Assurance":13.043478260869565,Accounting:0,Finance:88.88888888888889,"Media and Communication":78.94736842105263},region_distribution:{"Austin, TX":119,Philippines:85,"Atlanta, GA":81,"United States":570,"England, United Kingdom":95,Czechia:151,"Georgia, United States":137,"United Kingdom":103,"Prague Metropolitan Area":87,India:112,"Austin, Texas Metropolitan Area":152,"Atlanta Metropolitan Area":139,Austria:208,"Maharashtra, India":88,"Texas, United States":180,"Vienna, Austria":177},updated_at:`2025-09-08T12:04:58`,indexed_at:`2025-09-08T12:04:58`},vr=r.object({crustdata_company_id:r.number().int().nullable().describe(`Crustdata's stable numeric company id โ use it for follow-up Crustdata lookups.`),basic_info:r.object({name:r.string().nullable().describe(`Company display name.`),primary_domain:r.string().nullable().describe(`Primary website domain, e.g. stripe.com.`),website_url:r.string().nullable().describe(`Full website URL.`),professional_network_url:r.string().nullable().describe(`Company LinkedIn profile URL.`),description:r.string().nullable().describe(`Company description from the profile.`),company_type:r.string().nullable().describe(`Company type label, e.g. "Privately Held" or "Public Company".`),year_founded:r.number().int().nullable().describe(`Year the company was founded.`),employee_count_range:r.string().nullable().describe(`Self-reported employee count band, e.g. "201-500".`),markets:r.array(r.string()).nullable().describe(`Stock market tags, e.g. ["PRIVATE"] or ["NASDAQ"].`),industries:r.array(r.string()).nullable().describe(`Industry tags.`),logo_url:r.string().nullable().describe(`URL of the company logo image.`)}),headcount:r.object({total:r.number().int().nullable().describe(`Total tracked employee count.`),largest_headcount_country:r.string().nullable().describe(`ISO-3 code of the country with the most employees.`),growth_percent_1m:r.number().nullable().describe(`1-month headcount growth in percent.`),growth_percent_3m:r.number().nullable().describe(`3-month headcount growth in percent.`),growth_percent_6m:r.number().nullable().describe(`6-month headcount growth in percent.`),growth_percent_12m:r.number().nullable().describe(`12-month headcount growth in percent.`),growth_absolute_1m:r.number().nullable().describe(`1-month absolute employee delta.`),growth_absolute_3m:r.number().nullable().describe(`3-month absolute employee delta.`),growth_absolute_6m:r.number().nullable().describe(`6-month absolute employee delta.`),growth_absolute_12m:r.number().nullable().describe(`12-month absolute employee delta.`)}),funding:r.object({total_investment_usd:r.number().nullable().describe(`Total disclosed funding in USD.`),last_round_amount_usd:r.number().nullable().describe(`Amount of the last round in USD.`),last_fundraise_date:r.string().nullable().describe(`Date of the last funding round (YYYY-MM-DD).`),last_round_type:r.string().nullable().describe(`Type of the last round, snake_case, e.g. "series_a".`),investors:r.array(r.string()).nullable().describe(`Known investor names.`)}),locations:r.object({country:r.string().nullable().describe(`HQ country as ISO-3 code, e.g. USA.`),headquarters:r.string().nullable().describe(`Full HQ location string.`),state:r.string().nullable().describe(`HQ state/region.`),street_address:r.string().nullable().describe(`HQ street address.`),all_office_addresses:r.array(r.string()).nullable().describe(`All known office addresses.`)}),taxonomy:r.object({professional_network_industry:r.string().nullable().describe(`Primary industry label from the company's LinkedIn-style profile.`),professional_network_industries:r.array(r.string()).nullable().describe(`All industry labels from the company's LinkedIn-style profile.`),professional_network_specialities:r.array(r.string()).nullable().describe(`Self-reported speciality tags.`),categories:r.array(r.string()).nullable().describe(`High-level category tags.`)}),revenue:r.object({estimated_lower_bound_usd:r.number().nullable().describe(`Estimated annual revenue lower bound in USD.`),estimated_upper_bound_usd:r.number().nullable().describe(`Estimated annual revenue upper bound in USD.`),ipo_date:r.string().nullable().describe(`IPO date (YYYY-MM-DD) for public companies.`),stock_symbols:r.array(r.string()).nullable().describe(`Ticker symbols for public companies.`),fiscal_year_end:r.string().nullable().describe(`Fiscal year end month for public companies.`),acquisition_status:r.string().nullable().describe(`Acquisition status, e.g. "acquired".`)}),social_profiles:r.object({crunchbase_url:r.string().nullable().describe(`Crunchbase profile URL.`),crunchbase_uuid:r.string().nullable().describe(`Crunchbase profile UUID.`),twitter_url:r.string().nullable().describe(`X/Twitter profile URL.`),professional_network_url:r.string().nullable().describe(`Company LinkedIn profile URL.`),professional_network_id:r.string().nullable().describe(`Company LinkedIn profile id.`)})}),yr={crustdata_company_id:633593,basic_info:{name:`Retool`,primary_domain:`retool.com`,website_url:`https://retool.com/`,professional_network_url:`https://www.linkedin.com/company/tryretool`,description:`Build internal software better with AI.`,company_type:`Privately Held`,year_founded:2017,employee_count_range:`201-500`,markets:[`PRIVATE`],industries:[`Software Development`,`Technology, Information and Internet`],logo_url:`https://crustdata-media.s3.us-east-2.amazonaws.com/company/example.jpg`},headcount:{total:413,largest_headcount_country:`USA`,growth_percent_1m:0,growth_percent_3m:-2.59,growth_percent_6m:-8.43,growth_percent_12m:-11.75,growth_absolute_1m:0,growth_absolute_3m:-11,growth_absolute_6m:-38,growth_absolute_12m:-55},funding:{total_investment_usd:141e6,last_round_amount_usd:45e6,last_fundraise_date:`2022-07-27`,last_round_type:`series_c`,investors:[`Sequoia Capital`,`Y Combinator`,`Stripe`]},locations:{country:`USA`,headquarters:`San Francisco, California, United States`,state:`California`,street_address:null,all_office_addresses:[`915 Broadway, New York, NY, 10010, US`]},taxonomy:{professional_network_industry:`Software Development`,professional_network_industries:[`Software Development`],professional_network_specialities:[`Low-code`,`Developer tools`,`AI`],categories:[`Software`]},revenue:{estimated_lower_bound_usd:2e7,estimated_upper_bound_usd:5e7,ipo_date:null,stock_symbols:[],fiscal_year_end:null,acquisition_status:null},social_profiles:{crunchbase_url:`https://crunchbase.com/organization/retool`,crunchbase_uuid:`78d1acfa-b69f-1b14-2daf-c8af53089997`,twitter_url:`https://x.com/retool`,professional_network_url:`https://www.linkedin.com/company/tryretool`,professional_network_id:`11869260`}},br=r.object({company_id:r.number(),company_name:r.string(),linkedin_profile_name:r.string(),linkedin_profile_url:r.url(),crunchbase_profile_url:r.url(),crunchbase_profile_uuid:r.string(),linkedin_id:r.string(),linkedin_logo_url:r.url(),linkedin_logo_permalink:r.url(),company_twitter_url:r.url(),company_website_domain:r.string(),domains:r.array(r.string()),hq_country:r.string(),hq_state:r.string(),headquarters:r.string(),largest_headcount_country:r.string(),hq_street_address:r.string(),company_website:r.url(),year_founded:r.string(),fiscal_year_end:r.string(),employee_count_range:r.string(),company_type:r.string(),linkedin_company_description:r.string(),acquisition_status:r.string(),ipo_date:r.string().nullable(),markets:r.array(r.string()),stock_symbols:r.array(r.string()),all_office_addresses:r.array(r.string()),estimated_revenue_lower_bound_usd:r.number(),estimated_revenue_higher_bound_usd:r.number(),taxonomy:r.object({linkedin_specialities:r.array(r.string()),linkedin_industry:r.string(),linkedin_industries:r.array(r.string()),crunchbase_categories:r.array(r.string()),primary_naics_detail:r.object({naics_code:r.string(),year:r.number(),sector:r.string(),sub_sector:r.string(),industry_group:r.string(),industry:r.string()}),sic_detail_list:r.array(r.object({sic_code:r.string(),year:r.number(),industry:r.string()}))}),headcount:r.object({linkedin_headcount:r.number(),linkedin_headcount_total_growth_percent:r.object({mom:r.number(),qoq:r.number(),six_months:r.number(),yoy:r.number(),two_years:r.number()}),linkedin_headcount_total_growth_absolute:r.object({mom:r.number(),qoq:r.number(),six_months:r.number(),yoy:r.number(),two_years:r.number()}),linkedin_headcount_by_role_absolute:r.record(r.string(),r.number()),linkedin_headcount_by_role_percent:r.record(r.string(),r.number()),linkedin_headcount_by_role_six_months_growth_percent:r.record(r.string(),r.number()),linkedin_headcount_by_role_yoy_growth_percent:r.record(r.string(),r.number()),linkedin_headcount_by_region_absolute:r.record(r.string(),r.number()),linkedin_headcount_by_region_percent:r.record(r.string(),r.number()),linkedin_headcount_by_skill_absolute:r.record(r.string(),r.number()),linkedin_headcount_by_skill_percent:r.record(r.string(),r.number())}),web_traffic:r.object({monthly_visitors:r.number(),monthly_visitor_mom_pct:r.number(),monthly_visitor_qoq_pct:r.number(),traffic_source_social_pct:r.number(),traffic_source_search_pct:r.number(),traffic_source_direct_pct:r.number(),traffic_source_paid_referral_pct:r.number(),traffic_source_referral_pct:r.number()}),glassdoor:r.object({glassdoor_overall_rating:r.number().nullable(),glassdoor_ceo_approval_pct:r.number().nullable(),glassdoor_business_outlook_pct:r.number().nullable(),glassdoor_review_count:r.number().nullable(),glassdoor_senior_management_rating:r.number().nullable(),glassdoor_compensation_rating:r.number().nullable(),glassdoor_career_opportunities_rating:r.number().nullable(),glassdoor_culture_rating:r.number().nullable(),glassdoor_diversity_rating:r.number().nullable(),glassdoor_work_life_balance_rating:r.number().nullable(),glassdoor_recommend_to_friend_pct:r.number().nullable(),glassdoor_ceo_approval_growth_percent:r.record(r.string(),r.number()),glassdoor_review_count_growth_percent:r.record(r.string(),r.number())}),g2:r.object({g2_review_count:r.number(),g2_average_rating:r.number(),g2_review_count_mom_pct:r.number().nullable(),g2_review_count_qoq_pct:r.number().nullable(),g2_review_count_yoy_pct:r.number().nullable()}),linkedin_followers:r.object({linkedin_followers:r.number(),linkedin_followers_mom_percent:r.number(),linkedin_followers_qoq_percent:r.number(),linkedin_followers_six_months_growth_percent:r.number(),linkedin_followers_yoy_percent:r.number()}),funding_and_investment:r.object({crunchbase_total_investment_usd:r.number(),days_since_last_fundraise:r.number(),last_funding_round_type:r.string(),crunchbase_investors:r.array(r.string()),last_funding_round_investment_usd:r.number(),acquired_by:r.array(r.string())}),job_openings:r.object({recent_job_openings_title:r.string(),job_openings_count:r.number(),job_openings_count_growth_percent:r.object({mom:r.number(),qoq:r.number(),yoy:r.number()}),job_openings_by_function_qoq_pct:r.record(r.string(),r.number().nullable()),job_openings_by_function_six_months_growth_pct:r.record(r.string(),r.number().nullable())}),is_full_domain_match:r.boolean(),query_identifier:r.string()}),xr={company_id:2110301,company_name:`Microsoft`,linkedin_profile_name:`Microsoft`,linkedin_profile_url:`https://www.linkedin.com/company/microsoft`,crunchbase_profile_url:`https://crunchbase.com/organization/tena-care`,crunchbase_profile_uuid:`6369418f-b68e-4799-8f2a-df051914b5cc`,linkedin_id:`1035`,linkedin_logo_url:`https://media.licdn.com/dms/image/v2/D560BAQH32RJQCl3dDQ/company-logo_100_100/B56ZYQ0mrGGoAU-/0/1744038948046/microsoft_logo?e=1765411200&v=beta&t=MBU_ZbA-091nRpqW-2oksj3oPhyUhwJYlV3H52tyg1A`,linkedin_logo_permalink:`https://crustdata-media.s3.us-east-2.amazonaws.com/company/9324c3b16231718d7c6eb941352a0d023399e165e909e62565063a93a97dc9bb.jpg`,company_twitter_url:`https://twitter.com/MSFTImagine`,company_website_domain:`microsoft.com`,domains:[`microsoft.com`],hq_country:``,hq_state:``,headquarters:`Redmond, Washington, United States`,largest_headcount_country:`USA`,hq_street_address:`1 Microsoft Way, Redmond, Redmond, Washington, United States`,company_website:`https://news.microsoft.com/`,year_founded:`1975-04-04`,fiscal_year_end:``,employee_count_range:`10001+`,company_type:`Public Company`,linkedin_company_description:`Company description`,acquisition_status:``,ipo_date:null,markets:[`PRIVATE`,`NASDAQ`],stock_symbols:[`MICROSOFT`,`MSFT`],all_office_addresses:[`1 Denison Street , North Sydney, NSW, 2060, AU`],estimated_revenue_lower_bound_usd:1e9,estimated_revenue_higher_bound_usd:0xe8d4a51000,taxonomy:{linkedin_specialities:[`Business Software`],linkedin_industry:`Software Development`,linkedin_industries:[`Software Development`],crunchbase_categories:[`Information Services`],primary_naics_detail:{naics_code:`541512`,year:2022,sector:`Professional, Scientific, and Technical Services`,sub_sector:`Professional, Scientific, and Technical Services`,industry_group:`Computer Systems Design and Related Services`,industry:`Computer Systems Design Services`},sic_detail_list:[{sic_code:`7373`,year:1987,industry:`Computer Integrated Systems Design`},{sic_code:`7379`,year:1987,industry:`Computer Related Services, Nec`}]},headcount:{linkedin_headcount:224958,linkedin_headcount_total_growth_percent:{mom:1.8365693229093576,qoq:.47971270836683283,six_months:-2.859906469010843,yoy:-4.52953983134647,two_years:-2.2334059114199665},linkedin_headcount_total_growth_absolute:{mom:4057,qoq:1074,six_months:-6623,yoy:-10673,two_years:-5139},linkedin_headcount_by_role_absolute:{"Business Development":8175,"Human Resources":3637,"Media and Communication":2079,"Program and Project Management":16740,"Military and Protective Services":1231,Finance:2916,Purchasing:471,Accounting:853,Legal:1384,"Quality Assurance":807,"Community and Social Services":1358,Operations:7869,Consulting:3519,Entrepreneurship:449,Sales:17229,Administrative:4146,Education:3046,"Healthcare Services":436,"Customer Success and Support":4226,Support:4499,Marketing:4298,"Arts and Design":5338,"Product Management":7932,"Real Estate":125,"Information Technology":26338,Engineering:89640,Research:3849},linkedin_headcount_by_role_percent:{"Business Development":3.634011682180674,"Human Resources":1.6167462370753651,"Media and Communication":.9241725122022778,"Program and Project Management":7.441389059291067,"Military and Protective Services":.5472132575858605,Finance:1.296241965166831,Purchasing:.20937241618435443,Accounting:.3791818917309009,Legal:.6152259532890584,"Quality Assurance":.3587336302776518,"Community and Social Services":.6036682402937438,Operations:3.4979862907742776,Consulting:1.5642920011735524,Entrepreneurship:.1995928128806266,Sales:7.6587629690875625,Administrative:1.843010695329795,Education:1.3540305301434046,"Healthcare Services":.19381395638296928,"Customer Success and Support":1.8785728891615325,Support:1.9999288756123366,Marketing:1.9105788636100962,"Arts and Design":2.3728873834226833,"Product Management":3.525991518416771,"Real Estate":.05556592786208982,"Information Technology":11.707963264253772,Engineering:39.84743818846185,Research:1.7109860507294694},linkedin_headcount_by_role_six_months_growth_percent:{engineering:-5.895684233355021,sales:-6.190787324403789,operations:-7.4340230454714415,human_resource:-20.727986050566695,quality_assurance:-5.28169014084507},linkedin_headcount_by_role_yoy_growth_percent:{engineering:4.318681702335649,sales:-26.198329406725207,operations:-45.05271978213812,human_resource:-19.339099578620537,quality_assurance:-9.731543624161073},linkedin_headcount_by_region_absolute:{"Telangana, India":8511,"Greater Bengaluru Area":8835,"Delhi, India":2413,"Greater Seattle Area":55419,"Seattle, WA":14349,India:32554,"England, United Kingdom":5335,"United Kingdom":7284,"Greater Hyderabad Area":8423,"Karnataka, India":9069,"United States":100867,Hyderabad:8073,"California, United States":9876,"Washington, United States":56252,Bengaluru:8359,"Redmond, WA":18872,"Greater Delhi Area":3526},linkedin_headcount_by_region_percent:{"Telangana, India":3.783372896273971,"Greater Bengaluru Area":3.927399781292508,"Delhi, India":1.0726446714497817,"Greater Seattle Area":24.635265249513242,"Seattle, WA":6.378523991145013,India:14.471145724979776,"England, United Kingdom":2.3715538011539934,"United Kingdom":3.2379377483796974,"Greater Hyderabad Area":3.7442544830590596,"Karnataka, India":4.031419198250339,"United States":44.838147565323304,Hyderabad:3.5886698850452086,"California, United States":4.390152828527992,"Washington, United States":25.00555659278621,Bengaluru:3.7158047279936697,"Redmond, WA":8.389121524906871,"Greater Delhi Area":1.5674036931338293},linkedin_headcount_by_skill_absolute:{"Project Management":51442,JavaScript:41064,Leadership:47562,"Software Development":46660,SQL:49361,"Microsoft Office":48392,Strategy:22476,Management:44460,"Team Leadership":27656,Java:48933,"C++":45675,"Cloud Computing":41351,"Artificial Intelligence (AI)":21809,"Microsoft Azure":40261,"Business Development":21806,"C (Programming Language)":36121,"Python (Programming Language)":48882},linkedin_headcount_by_skill_percent:{"Project Management":22.867379688652992,JavaScript:18.254074093830848,Leadership:21.142613287813724,"Software Development":20.741649552360887,SQL:21.942318121604924,"Microsoft Office":21.511571048818002,Strategy:9.991198357026645,Management:19.763689221988106,"Team Leadership":12.293850407631647,Java:21.752060384605127,"C++":20.303790040807616,"Cloud Computing":18.38165346420221,"Artificial Intelligence (AI)":9.694698565954534,"Microsoft Azure":17.897118573244782,"Business Development":9.693364983685845,"C (Programming Language)":16.05677504245237,"Python (Programming Language)":21.72938948603739}},web_traffic:{monthly_visitors:1169534892,monthly_visitor_mom_pct:-.76,monthly_visitor_qoq_pct:1.3,traffic_source_social_pct:.3373025163159866,traffic_source_search_pct:35.89042683786508,traffic_source_direct_pct:55.92251604879158,traffic_source_paid_referral_pct:.5430052531009828,traffic_source_referral_pct:6.914625600875615},glassdoor:{glassdoor_overall_rating:null,glassdoor_ceo_approval_pct:null,glassdoor_business_outlook_pct:null,glassdoor_review_count:null,glassdoor_senior_management_rating:null,glassdoor_compensation_rating:null,glassdoor_career_opportunities_rating:null,glassdoor_culture_rating:null,glassdoor_diversity_rating:null,glassdoor_work_life_balance_rating:null,glassdoor_recommend_to_friend_pct:null,glassdoor_ceo_approval_growth_percent:{},glassdoor_review_count_growth_percent:{}},g2:{g2_review_count:0,g2_average_rating:0,g2_review_count_mom_pct:null,g2_review_count_qoq_pct:null,g2_review_count_yoy_pct:null},linkedin_followers:{linkedin_followers:27009682,linkedin_followers_mom_percent:.9906623853998611,linkedin_followers_qoq_percent:3.0163158635666516,linkedin_followers_six_months_growth_percent:5.75827914805515,linkedin_followers_yoy_percent:12.147060616262205},funding_and_investment:{crunchbase_total_investment_usd:0,days_since_last_fundraise:1081,last_funding_round_type:`post_ipo_equity`,crunchbase_investors:[`Google for Startups`,`MongoDB for Startups`,`Microsoft for Startups`,`Intel`,`Technology Venture Investors`,`Nvidia Inception`,`KB Securities`],last_funding_round_investment_usd:1e6,acquired_by:[]},job_openings:{recent_job_openings_title:`Senior Research Data Engineer, AI Engineer`,job_openings_count:1987,job_openings_count_growth_percent:{mom:-.5329102021626704,qoq:-.08136846971798428,yoy:.2410993129294191},job_openings_by_function_qoq_pct:{accounting:null,art_and_design:null,business_development:null,engineering:-.7404351087771943,finance:null,human_resource:null,information_technology:0,marketing:-.38235294117647056,media_and_communication:null,operations:-.8974358974358975,research:null,sales:-.8734177215189873,product_management:null},job_openings_by_function_six_months_growth_pct:{accounting:null,art_and_design:null,business_development:null,engineering:-.5592356687898089,finance:null,human_resource:null,information_technology:0,marketing:1.625,media_and_communication:null,operations:-.7714285714285715,research:null,sales:-.3333333333333333,product_management:null}},is_full_domain_match:!0,query_identifier:`microsoft.com`},Sr=r.object({person_id:r.number().int().positive(),name:r.string().min(1),first_name:r.string().min(1),last_name:r.string().min(1),region:r.string().optional(),headline:r.string().optional(),summary:r.string().optional(),skills:r.array(r.string()),languages:r.array(r.string()),emails:r.array(r.email()),open_to_cards:r.array(r.string()),profile_language:r.string().optional(),linkedin_profile_url:r.url(),linkedin_flagship_url:r.string().optional().nullable(),flagship_profile_url:r.url().optional(),profile_picture_url:r.url().optional(),profile_picture_permalink:r.url().optional(),twitter_handle:r.string().optional(),num_of_connections:r.number().int().nonnegative(),last_updated:r.iso.datetime(),updated_at:r.iso.datetime(),recently_changed_jobs:r.boolean(),years_of_experience:r.string(),years_of_experience_raw:r.number().int().nonnegative(),education_background:r.array(r.object({degree_name:r.string().optional(),institute_name:r.string().optional(),institute_linkedin_id:r.string().or(r.number().int()).optional(),institute_linkedin_url:r.url().or(r.string()).optional(),institute_logo_url:r.url().or(r.string()).optional(),field_of_study:r.string().optional(),activities_and_societies:r.string().optional(),start_date:r.iso.datetime().optional(),end_date:r.iso.datetime().optional()})),honors:r.array(r.any()),certifications:r.array(r.any()),current_employers:r.array(r.object({name:r.string(),linkedin_id:r.string().or(r.number().int()).optional(),company_id:r.number().int().optional(),company_linkedin_id:r.string().or(r.number().int()).optional(),company_website_domain:r.string().optional(),position_id:r.number().int().optional(),title:r.string(),description:r.string().optional(),location:r.string().optional(),start_date:r.iso.datetime().optional(),employer_is_default:r.boolean().optional(),seniority_level:r.string().optional(),function_category:r.string().optional(),years_at_company:r.string().optional(),years_at_company_raw:r.number().int().nonnegative().optional(),company_headquarters_country:r.string().optional(),company_headcount_range:r.string().optional(),company_industries:r.array(r.string()).optional(),company_type:r.string().optional(),company_headcount_latest:r.number().int().nonnegative().optional(),company_website:r.url().or(r.string()).optional(),company_linkedin_profile_url:r.url().or(r.string()).optional()})),past_employers:r.array(r.object({name:r.string(),linkedin_id:r.string().or(r.number().int()).optional(),company_id:r.number().int().optional(),company_linkedin_id:r.string().or(r.number().int()).optional(),company_website_domain:r.string().optional(),position_id:r.number().int().optional(),title:r.string(),description:r.string().optional(),location:r.string().optional(),start_date:r.iso.datetime().optional(),end_date:r.iso.datetime().optional(),employer_is_default:r.boolean().optional(),seniority_level:r.string().optional(),function_category:r.string().optional(),years_at_company:r.string().optional(),years_at_company_raw:r.number().int().nonnegative().optional(),company_headquarters_country:r.string().optional(),company_headcount_range:r.string().optional(),company_industries:r.array(r.string()).optional(),company_type:r.string().optional(),company_headcount_latest:r.number().int().nonnegative().optional(),company_website:r.url().or(r.string()).optional(),company_linkedin_profile_url:r.url().or(r.string()).optional()})),all_employers:r.array(r.object({name:r.string(),linkedin_id:r.string().or(r.number().int()).optional(),company_id:r.number().int().optional(),company_linkedin_id:r.string().or(r.number().int()).optional(),company_website_domain:r.string().optional(),position_id:r.number().int().optional(),title:r.string(),description:r.string().optional(),location:r.string().optional(),start_date:r.iso.datetime().optional(),end_date:r.iso.datetime().optional(),employer_is_default:r.boolean().optional(),seniority_level:r.string().optional(),function_category:r.string().optional(),years_at_company:r.string().optional(),years_at_company_raw:r.number().int().nonnegative().optional(),company_headquarters_country:r.string().optional(),company_headcount_range:r.string().optional(),company_industries:r.array(r.string()).optional(),company_type:r.string().optional(),company_headcount_latest:r.number().int().nonnegative().optional(),company_website:r.url().or(r.string()).optional(),company_linkedin_profile_url:r.url().or(r.string()).optional()}))}),Cr={person_id:1022,name:`Jaideep Singh Bachher`,first_name:`Jaideep`,last_name:`Bachher`,region:`New York City Metropolitan Area`,headline:`Co-Founder and CEO at Ambee (Techstars '19, Google Launchpad '20) - Climate Tech, Pro Bono Legal`,summary:`At Ambee, we're saving the planet, one data point at a time`,skills:[`Project Management`,`Business Strategy`,`Business Development`,`Management Consulting`,`Team Management`,`Research`,`Strategic Planning`,`Marketing Strategy`,`Market Research`,`Legal Research`,`Corporate Law`,`Entrepreneurship`,`Legal Writing`,`Legal Advice`,`Management`],languages:[`English`,`Hindi`,`Telugu`,`Punjabi`],profile_language:`English`,linkedin_profile_url:`https://www.linkedin.com/in/ACoAAAzenuoB6NZ8S3iS8pfwzZRMTodnweFiAlg`,flagship_profile_url:`https://www.linkedin.com/in/jaideepbachher`,emails:[],profile_picture_url:`https://media.licdn.com/dms/image/v2/C5603AQFCAPGkgFiquA/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1660976957718?e=1758758400&v=beta&t=mcwQCTsw60H0M5m5G45g7_6O0CHq5Xk2eaPf47nJIWw`,profile_picture_permalink:`https://crustdata-media.s3.us-east-2.amazonaws.com/person/2ec5a7e4bd23a121cf70946589f7beba1c437d862dbcf48cfd42cdb151571dc6.jpg`,twitter_handle:``,open_to_cards:[],num_of_connections:6206,education_background:[{degree_name:`Study Abroad`,institute_name:`Griffith University`,institute_linkedin_id:`-1347443`,institute_linkedin_url:`https://www.linkedin.com/school/164056/`,institute_logo_url:`https://media.licdn.com/dms/image/v2/D560BAQFUPRPd0OOdCA/company-logo_400_400/B56ZfIhMHrGQAY-/0/1751415833791/griffith_university_logo?e=1759363200&v=beta&t=xAvw3qOKAtPJ864hLihQ6FgvhDoGshLMGKT-TIgreWA`,field_of_study:`International Law and Legal Studies`,activities_and_societies:``,start_date:`2007-01-01T00:00:00`,end_date:`2007-01-01T00:00:00`},{degree_name:`B.A.LL.B. (Hons.)`,institute_name:`National Academy of Legal Studies & Research (NALSAR) University Hyderabad`,institute_linkedin_id:`15124875`,institute_linkedin_url:`https://www.linkedin.com/school/15124875/`,institute_logo_url:`https://media.licdn.com/dms/image/v2/C560BAQEDvuXqqg1eYQ/company-logo_400_400/company-logo_400_400/0/1630645319352/national_academy_of_legal_studies__research_nalsr_university_hyderabad_logo?e=1759363200&v=beta&t=A7ivs6Nb6FnJTIlWXK32sVN2oMVbhiyfidfz-gvDxts`,field_of_study:`Law`,activities_and_societies:``,start_date:`2004-01-01T00:00:00`,end_date:`2009-01-01T00:00:00`},{degree_name:`Master of Arts (M.A.)`,institute_name:`University of Vienna`,institute_linkedin_id:`1617918`,institute_linkedin_url:`https://www.linkedin.com/school/1617918/`,institute_logo_url:`https://media.licdn.com/dms/image/v2/C4E0BAQG7cnh-00AOEg/company-logo_400_400/company-logo_400_400/0/1631304925897?e=1759363200&v=beta&t=MJN6tlU_i-HaLs_g-XqTNFhYHUStlNHRWEPBqq7IAsI`,field_of_study:`Law and Economics`,activities_and_societies:``,start_date:`2017-01-01T00:00:00`,end_date:`2017-01-01T00:00:00`},{degree_name:`LL.M. European Master in Law and Economics`,institute_name:`Erasmus University Rotterdam`,institute_linkedin_id:`269012`,institute_linkedin_url:`https://www.linkedin.com/school/269012/`,institute_logo_url:`https://media.licdn.com/dms/image/v2/C4E0BAQH6a-XX__UABw/company-logo_400_400/company-logo_400_400/0/1630595251002/erasmus_university_rotterdam_logo?e=1759363200&v=beta&t=v7TLB8ix6KoB3fCsFtueW4HTZa8Eoq87pr5mr9LUcB0`,field_of_study:`Law`,activities_and_societies:``,start_date:`2016-01-01T00:00:00`,end_date:`2016-01-01T00:00:00`},{degree_name:`The Indian School Certificate`,institute_name:`The Hyderabad Public School, Begumpet`,institute_linkedin_id:`14690264`,institute_linkedin_url:`https://www.linkedin.com/school/14690264/`,institute_logo_url:`https://media.licdn.com/dms/image/v2/D560BAQEd1LQ1BzzNow/company-logo_400_400/company-logo_400_400/0/1704183073345/hpsbegumpet_logo?e=1759363200&v=beta&t=adbYo6wD2ciugz2ejhZwIDRF3LzdtuZEm9EAvi9ugd8`,field_of_study:``,activities_and_societies:``}],honors:[],certifications:[],current_employers:[{name:`Ambee`,linkedin_id:`13349105`,company_id:6304,company_linkedin_id:`13349105`,company_website_domain:`getambee.com`,position_id:1038571016,title:`Co-Founder/CEO`,description:`Originally envisaged as an air quality device manufacturer, Ambee pivoted to environmental data in 2018
|
|
4
4
|
|
|
@@ -64,8 +64,8 @@ From the current S24 batch.
|
|
|
64
64
|
How do you...`,`Y Combinator's most popular startups.
|
|
65
65
|
From the current S24 batch.
|
|
66
66
|
|
|
67
|
-
How do you...`]}},crustdata_post_list:{label:`Crustdata Post list`,type:`json`,format:`json_list_string`,description:`Rich JSON post list`,jsonMeta:{zodSchema:wr,exampleValue:Tr}},role_finder_match:{label:`Role finder match`,type:`json`,format:`json_object`,description:`Result of a role finder operation`,jsonMeta:{zodSchema:Ta,exampleValue:Ea}},role_finder_person_match:{order:90,label:`Role finder match`,type:`json`,format:`json_object`,description:`The person found at the company for the requested roles: name, primary job title, LinkedIn URL, and the company's name, domain and LinkedIn URL.`,jsonMeta:{zodSchema:Da,exampleValue:Oa}},role_finder_matches:{order:90,label:`Role finder matches`,type:`json`,format:`json_list`,description:"Every person found at the company matching the requested job titles, capped by the pipe's limit. Explode it into rows with `row:expandappend:sheet@1` to enrich each person.",jsonMeta:{zodSchema:ka,exampleValue:Aa}},role_finder_match_count:{label:`Role finder matches found`,type:`number`,format:`int`,description:`How many people are in the role finder matches list. Always at least 1 โ a company with no match leaves the cell empty instead.`,jsonMeta:null},open_job_match:{label:`Job match`,type:`json`,format:`json_object`,description:`Standardized open job posting: title, URL, category and function, advertised location, workplace and employment type, posted date, and source platform. Shared across job data providers.`,jsonMeta:{zodSchema:Ui,exampleValue:Wi}},open_job_matches:{order:90,label:`Open jobs`,type:`json`,format:`json_list`,description:"Every open job posting the provider has indexed for the company that matches the configured filters, capped by the pipe's limit. Explode it into rows with `row:expandappend:sheet@1` to work one posting per row.",jsonMeta:{zodSchema:Gi,exampleValue:Ki}},open_job_match_count:{label:`Open jobs found`,type:`number`,format:`int`,description:`How many postings are in the open jobs list. Always at least 1 โ a company with no matching opening leaves the cell empty instead.`,jsonMeta:null},open_job_company_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Standardized hiring company as a jobs dataset describes it: name, domain, LinkedIn profile URL, HQ location, and headcount bracket. Shared across job data providers.`,jsonMeta:{zodSchema:Bi,exampleValue:Vi}},job_url:{label:`Job URL`,description:`URL of a job posting on the source platform`,format:`url`,type:`string`,jsonMeta:null},post_text:{label:`Post text`,description:"The BODY of a post or feed entry โ its text content, without the headline. See `post_title` for that.",format:`long_text`,type:`string`,jsonMeta:null},post_id:{label:`Post ID`,description:`Stable identifier of the post (its LinkedIn share URN)`,format:`text`,type:`string`,jsonMeta:null},x_post_id:{label:`X post ID`,description:`The post's stable ID on X (Twitter) โ the dedup key of the X post search.`,format:`text`,type:`string`,jsonMeta:null},x_post_url:{label:`X post URL`,description:`Direct link to the post on X (Twitter)`,format:`url`,type:`string`,jsonMeta:null},x_user_id:{label:`X user ID`,description:`The account's numeric ID on X (Twitter) โ stable across username changes; the join key for X account lookups.`,format:`text`,type:`string`,jsonMeta:null},x_username:{label:`X username`,description:`The account's X (Twitter) handle without the @ โ the input for the X posts pipe.`,format:`text`,type:`string`,jsonMeta:null},ad_list:{label:`LinkedIn ads`,type:`json`,format:`json_list_string`,description:`The company's ads in the LinkedIn ad library: ad URL and id, advertiser, format, headline, body copy, CTA, landing page, image/video URLs, bucketed impression range, and the dates the ad ran. Every ad carries ad_platform: "linkedin", so ads from several platforms can be merged into one feed and still say where they came from. Dates and impressions are published only for ads served in the EU/EEA.`,jsonMeta:{zodSchema:on,exampleValue:sn}},ad_count:{label:`LinkedIn ad count`,type:`number`,format:`int`,description:`How many LinkedIn ads were found for this company. A company running no ads resolves as no_result rather than 0, so the waterfall can try the next provider.`,jsonMeta:null},google_ad_list:{label:`Google ads`,type:`json`,format:`json_list_string`,description:`The company's creatives in the Google Ads Transparency Center: ad URL, creative and advertiser ids, format (text/image/video), the creative's variations with their headline, body copy, display URL and image URLs, and first/last shown dates. Every ad carries ad_platform: "google". Copy is read off creative screenshots and can carry OCR damage.`,jsonMeta:{zodSchema:Br,exampleValue:Vr}},google_ad_count:{label:`Google ad count`,type:`number`,format:`int`,description:`How many Google creatives were found for this company. A company running no ads resolves as no_result rather than 0, so the waterfall can try the next provider.`,jsonMeta:null},meta_ad_list:{label:`Meta ads`,type:`json`,format:`json_list_string`,description:`The company's ads in the Meta Ad Library: ad URL and library id, Page identity, format, whether it is still running, publisher platforms, headline, primary text, description, CTA, landing page, media URLs, carousel/catalog cards, and the dates the ad ran. Every ad carries ad_platform: "meta".`,jsonMeta:{zodSchema:Ii,exampleValue:Li}},meta_ad_count:{label:`Meta ad count`,type:`number`,format:`int`,description:`How many Meta ads were found for this company. A company running no ads โ or whose ads all failed the advertiser check โ resolves as no_result rather than 0.`,jsonMeta:null},hn_item_id:{label:`HN item ID`,description:`The item's stable id on Hacker News โ the dedup key of the Hacker News stream. Keep it enabled: without it a stream re-adds the same item on every poll.`,format:`text`,type:`string`,jsonMeta:null},hn_item_url:{label:`HN item URL`,description:`Direct link to the item's discussion page on Hacker News.`,format:`url`,type:`string`,jsonMeta:null},hn_username:{label:`HN username`,description:`Hacker News account that posted the item.`,format:`text`,type:`string`,jsonMeta:null},hn_item_match:{label:`HN item`,type:`json`,format:`json_object`,description:`A Hacker News story or comment in HN's own vocabulary: kind, author, score and comment count at the time we saw it, the submitted external URL, the parent thread's id/title/url, posting time, and Algolia's tags (show_hn, ask_hn, front_page). Scores are near-zero for fresh items because we poll seconds after submission.`,jsonMeta:{zodSchema:Hr,exampleValue:Ur}},rss_item_title:{label:`Feed item title`,description:"RSS `title` / Atom `title`. Both formats make it optional โ an item may legally carry only a description โ but it is present on every feed measured, including forums.",format:`text`,type:`string`,jsonMeta:null},rss_item_published_at:{label:`Feed item published at`,description:"RSS `pubDate` / Atom `published`, ISO 8601 with the time. PUBLISHER-supplied rather than inferred from a page, so it is exact โ which is what makes 'anything from the last week' a filter you can trust.",format:`datetime`,type:`string`,jsonMeta:null},rss_item_url:{label:`Feed item URL`,description:`Direct link to the entry on the publisher's site.`,format:`url`,type:`string`,jsonMeta:null},rss_item_match:{label:`Feed item`,type:`json`,format:`json_object`,description:`An RSS or Atom entry in the feed's own vocabulary: the source feed, the publisher's id and link, the author, the categories or board it was posted under, and the exact publication time. Author and categories are absent on plainer feeds.`,jsonMeta:{zodSchema:ja,exampleValue:Ma}},calcom_booking_uid:{label:`Cal.com booking`,type:`string`,format:`text`,description:`Cal.com's own booking identifier. The dedupe key for a bookings stream โ a reschedule produces a NEW uid, so the same meeting can appear twice by design.`,jsonMeta:null},calcom_booking_match:{label:`Cal.com booking`,type:`json`,format:`json_object`,description:`A Cal.com booking in Cal.com's own vocabulary: which trigger fired, the booked slot and timezone, event type, organizer and attendees, meeting link, the answers to the booking form's questions, and cancellation or reschedule detail. Cal.com allows a custom payload template, so every field is best-effort โ the raw delivery is always kept alongside.`,jsonMeta:{zodSchema:Gn,exampleValue:Kn}},email_text:{label:`Email text`,type:`string`,description:`The plain-text body of a RECEIVED email. Taken from the message's text/plain part, or converted from the HTML when the sender supplied only that. This is the field to feed a prompt; the markup version is in email_message.html. Separate from email_body, which is the markdown an outbound pipe COMPOSES โ rendering a received body as markdown silently rewrites it. May be a prefix of the real body; email_message.truncated says when.`,jsonMeta:null,format:`long_text`},email_message:{label:`Email message`,type:`json`,format:`json_object`,description:"Everything about a received email that is not the sender, subject or plain-text body: the exact recipient it arrived at (including any +suffix, which is how one address serves several senders), cc and reply-to, Message-ID and thread headers, the HTML body, attachment METADATA (bytes are discarded at ingest and cannot be retrieved), and the List-Id / List-Unsubscribe headers that identify and stop a newsletter. `auth_headers` holds whatever authentication headers arrived, unparsed โ Cloudflare does not currently pass SPF/DKIM/DMARC verdicts to an email worker, so it is NOT evidence the sender is genuine.",jsonMeta:{zodSchema:jr,exampleValue:Mr}},crustdata_company_change_match:{label:`Company change`,type:`json`,format:`json_object`,description:"WHAT changed on a watched company, and nothing else โ a list discriminated on `change_type`, so each entry's shape is known: a scalar change (headcount, hiring, industry, HQ, name) carries `from` and `to`, while a funding round, acquisition or news event carries the things that appeared verbatim in `new_elements`. The company as it stands AFTER the change is in crustdata_company_match_v2 on the same row, and this field never repeats it. Read entries by predicate rather than position, e.g. `changes[change_type='news'].new_elements[].article_url`. `all_domains` is the reliable join key back to an enrolled account list. `detected_at` is when Crustdata noticed, not when it happened; `truncated` flags a run whose per-run spend cap dropped some changes.",jsonMeta:{zodSchema:aee,exampleValue:oee}},crustdata_profile_change_match:{label:`Profile change`,type:`json`,format:`json_object`,description:"WHAT changed on a watched person, and nothing else โ which fields moved, in both Crustdata's vocabulary and pipe0's. A scalar change (title, headline, location) carries `from` and `to`, which is the one thing on the row that cannot be read off person_profile_match; a job move carries the added role verbatim in `new_elements`. The person as they are AFTER the change is in person_profile_match on the same row, and this field never repeats it. `detected_at` is when Crustdata noticed, not when it happened โ the freshness tier governs the gap. `truncated` flags a run whose per-run spend cap dropped some changes.",jsonMeta:{zodSchema:Dr,exampleValue:Or}},x_post_match:{label:`X post`,type:`json`,format:`json_object`,description:`An X (Twitter) post in X's own vocabulary: post URL, text, language, expanded link targets, reply/quote flags, like/repost/reply/quote/bookmark/impression counts, author (handle, name, bio, follower count, verified), and the exact posting time.`,jsonMeta:{zodSchema:Zo,exampleValue:Qo}},x_post_list:{label:`X posts`,type:`json`,format:`json_list_string`,description:`Recent X (Twitter) posts of an account, in the same shape as x_post_match`,jsonMeta:{zodSchema:r.array(Zo),exampleValue:[Qo]}},x_profile_match:{label:`X profile`,type:`json`,format:`json_object`,description:`An X (Twitter) account profile: stable numeric user ID, handle, name, bio, follower/following/post counts, location, website, verification flag, and account creation date.`,jsonMeta:{zodSchema:Yo,exampleValue:Xo}},amplemarket_person_match:{label:`Person match`,type:`json`,format:`json_object`,description:`Person match object as returned by Amplemarket`,jsonMeta:{zodSchema:un,exampleValue:dn}},amplemarket_company_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Company match object as returned by Amplemarket`,jsonMeta:{zodSchema:cn,exampleValue:ln}},companyenrich_matches:{label:`CompanyEnrich matches`,type:`json`,format:`json_object`,description:`CompanyEnrich response list.`,jsonMeta:{zodSchema:r.array(dr),exampleValue:[fr]}},logo_url:{label:`Logo URL`,type:`string`,format:`text`,description:`Company or organization logo`,jsonMeta:null},logodev_describe_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Get company logos & brand data`,jsonMeta:{exampleValue:Oi,zodSchema:Di}},mobile_number:{label:`Mobile`,type:`string`,description:`Mobile telephone number of a person.`,jsonMeta:null,format:`phone`},company_social_url:{label:`Company Social URL`,type:`string`,description:`Social Media URL for a given company (e.g. LinkedIn profile URL).`,jsonMeta:null,format:`profile_url`},professional_profile:{label:`Professional profile (LinkedIn)`,type:`json`,description:`A standardized format for returning LinkedIn profile data.`,jsonMeta:{zodSchema:Ca,exampleValue:wa},format:`json_object`},hubspot_contact_found:{label:`HubSpot contact found`,type:`boolean`,description:`Whether a HubSpot contact matched the email (a clean miss is not an error).`,jsonMeta:null,format:null},hubspot_contact_match:{order:90,label:`HubSpot contact`,type:`json`,format:`json_object`,description:`One HubSpot contact record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties. Match-pipe output also carries matched_by.`,jsonMeta:{zodSchema:Yr,exampleValue:Xr}},hubspot_companies_found_count:{label:`HubSpot companies found`,type:`number`,format:`int`,description:`Number of HubSpot companies matching the domain. Domain is HubSpot's dedupe key but not unique โ multiple matches are normal.`,jsonMeta:null},hubspot_company_match:{order:90,label:`HubSpot company`,type:`json`,format:`json_object`,description:`One HubSpot company record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties.`,jsonMeta:{zodSchema:Zr,exampleValue:Qr}},hubspot_company_matches:{order:90,label:`HubSpot company matches`,type:`json`,format:`json_list`,description:`All HubSpot companies matching the domain, each with id, url, matched_by, and the selected properties.`,jsonMeta:{zodSchema:ri,exampleValue:ii}},hubspot_deals_found_count:{label:`HubSpot deals found`,type:`number`,format:`int`,description:`Number of HubSpot deals associated with the matched company or contact.`,jsonMeta:null},hubspot_deal_match:{order:90,label:`HubSpot deal`,type:`json`,format:`json_object`,description:`One HubSpot deal record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties.`,jsonMeta:{zodSchema:$r,exampleValue:ei}},hubspot_deal_matches:{order:90,label:`HubSpot deal matches`,type:`json`,format:`json_list`,description:`Matched HubSpot deals (sorted by close date, newest first), each with id, url, and the selected properties.`,jsonMeta:{zodSchema:ai,exampleValue:oi}},hubspot_object_id:{order:10,label:`HubSpot object ID`,type:`string`,description:`Record ID (hs_object_id) of the HubSpot record โ the identifier to write back to it (object:update, object:associations).`,jsonMeta:null,format:`text`},hubspot_owner_id:{order:12,label:`HubSpot owner ID`,type:`string`,description:"ID of the HubSpot owner (user) โ the value stored in `hubspot_owner_id` properties on contacts, companies, and deals.",jsonMeta:null,format:`text`},hubspot_owned_count:{order:50,label:`Owned records`,type:`number`,format:`int`,description:`Number of records of the selected object type owned by this HubSpot owner (only when ownership counts are enabled).`,jsonMeta:null},hubspot_owner_match:{order:90,label:`HubSpot owner`,type:`json`,format:`json_object`,description:`The HubSpot owner record: id, email, name, archived flag, and team memberships.`,jsonMeta:{zodSchema:ti,exampleValue:ni}},hubspot_update_result:{label:`HubSpot update result`,type:`json`,format:`json_object`,description:`Result of the HubSpot update: id, url, object type, and updated property names.`,jsonMeta:{zodSchema:si,exampleValue:ci}},hubspot_associated_count:{label:`HubSpot associations found`,type:`number`,format:`int`,description:`Number of associated HubSpot objects found for the source record.`,jsonMeta:null},hubspot_associated_objects:{order:90,label:`HubSpot associated objects`,type:`json`,format:`json_list`,description:`Associated HubSpot objects, each with id, url, association labels, and the selected properties under properties.`,jsonMeta:{zodSchema:li,exampleValue:ui}},hubspot_activity_result:{label:`HubSpot activity result`,type:`json`,format:`json_object`,description:`Result of logging a HubSpot engagement: id, url, the engagement type, and the record it was associated to.`,jsonMeta:{zodSchema:di,exampleValue:fi}},salesforce_record_id:{order:10,label:`Salesforce record ID`,type:`string`,description:`18-character ID of the Salesforce record โ the identifier to write back to it (record:update, record:lookup). Every Salesforce surface emits this same column, so it chains regardless of source.`,jsonMeta:null,format:`text`},salesforce_owned_count:{order:50,label:`Owned records`,type:`number`,format:`int`,description:`Number of records of the selected object type owned by this Salesforce user (only when ownership counts are enabled).`,jsonMeta:null},salesforce_person_found:{label:`Salesforce person found`,type:`boolean`,description:`Whether the email matched a Salesforce Contact, Lead, or Person Account (a clean miss is not an error).`,jsonMeta:null,format:null},salesforce_accounts_found_count:{label:`Salesforce accounts found`,type:`number`,format:`int`,description:`Number of Salesforce accounts matching the domain. Accounts have no unique domain key โ multiple matches are normal.`,jsonMeta:null},salesforce_opportunities_found_count:{label:`Salesforce opportunities found`,type:`number`,format:`int`,description:`Number of Salesforce opportunities reached via the matched account or contact role.`,jsonMeta:null},salesforce_record_found:{label:`Salesforce record found`,type:`boolean`,description:`Whether the record ID resolved to a live Salesforce record (deleted/missing is a clean miss, not an error).`,jsonMeta:null,format:null},salesforce_record_created:{label:`Salesforce record created`,type:`boolean`,description:`Whether the assert created a new record (true) or updated an existing one matched by the external ID (false).`,jsonMeta:null,format:null},salesforce_contact_match:{order:90,label:`Salesforce contact`,type:`json`,format:`json_object`,description:`One Salesforce contact record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Wa,exampleValue:Ga}},salesforce_lead_match:{order:90,label:`Salesforce lead`,type:`json`,format:`json_object`,description:`One Salesforce lead record: id, url, and the standard field set as flat typed keys (including IsConverted/ConvertedContactId); picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Ka,exampleValue:qa}},salesforce_account_match:{order:90,label:`Salesforce account`,type:`json`,format:`json_object`,description:`One Salesforce account record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Ja,exampleValue:Ya}},salesforce_account_matches:{order:90,label:`Salesforce account matches`,type:`json`,format:`json_list`,description:`All Salesforce accounts matching the domain (oldest first), each with id, url, matched_variant, and the selected fields.`,jsonMeta:{zodSchema:ro,exampleValue:io}},salesforce_opportunity_match:{order:90,label:`Salesforce opportunity`,type:`json`,format:`json_object`,description:`One Salesforce opportunity record: id, url, and the standard field set as flat typed keys (IsClosed/IsWon carry the org-invariant status); picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Xa,exampleValue:Za}},salesforce_opportunity_matches:{order:90,label:`Salesforce opportunity matches`,type:`json`,format:`json_list`,description:`Matched Salesforce opportunities (newest close date first), each with id, url, contact_roles edge metadata, and the selected fields.`,jsonMeta:{zodSchema:ao,exampleValue:oo}},salesforce_user_match:{order:90,label:`Salesforce user`,type:`json`,format:`json_object`,description:`One Salesforce user record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Qa,exampleValue:$a}},salesforce_person_match:{order:90,label:`Salesforce person`,type:`json`,format:`json_object`,description:`The matched Salesforce person across Contact, Lead, and Person Account shapes: object_type says which; keys foreign to the matched shape are null. Carries matched_by and is_converted_redirect.`,jsonMeta:{zodSchema:to,exampleValue:no}},salesforce_record_match:{order:90,label:`Salesforce record`,type:`json`,format:`json_object`,description:`A generic Salesforce record (any object): id, url, object_type, and ALL fields visible to the connected user nested under record.`,jsonMeta:{zodSchema:so,exampleValue:co}},salesforce_update_result:{label:`Salesforce update result`,type:`json`,format:`json_object`,description:`Result of the Salesforce update: id, url, object type, updated field names, and the fresh post-write record (formulas/triggers may rewrite values after save).`,jsonMeta:{zodSchema:lo,exampleValue:uo}},salesforce_activities_found_count:{label:`Salesforce activities found`,type:`number`,format:`int`,description:`Total tasks and events on the record's timeline matching the filters โ the true total before the display limit.`,jsonMeta:null},salesforce_last_activity_date:{label:`Salesforce last activity date`,type:`string`,format:`date`,description:`Most recent activity date across the record's tasks and events (null when the timeline is empty) โ chain a run_if on it to gate stale records.`,jsonMeta:null},salesforce_activities:{order:90,label:`Salesforce activities`,type:`json`,format:`json_list`,description:`The record's activity timeline (tasks and events, newest first), each with id, url, object_type, subject, status, activity_date, subtype, who_id/what_id anchors, and picked custom fields under custom_properties.`,jsonMeta:{zodSchema:po,exampleValue:mo}},salesforce_activity_result:{label:`Salesforce activity result`,type:`json`,format:`json_object`,description:`Result of logging a Salesforce activity: id, url, subject, subtype, the who_id/what_id anchors, and created (false only when an idempotency key matched an existing record).`,jsonMeta:{zodSchema:ho,exampleValue:go}},professional_profile_url:{label:`LinkedIn Profile URL`,type:`string`,format:`profile_url`,description:`A person's LinkedIn profile URL.`,jsonMeta:null},attio_record_id:{order:10,label:`Attio record ID`,type:`string`,description:`Record ID of the Attio record โ the identifier to write back to it (record:lookup, record:update).`,jsonMeta:null,format:`text`},attio_entry_id:{order:11,label:`Attio entry ID`,type:`string`,description:`ID of the Attio list entry (a record can sit in a list more than once; the entry carries the list-level attributes such as stage).`,jsonMeta:null,format:`text`},attio_person_found:{label:`Attio person found`,type:`boolean`,description:`Whether an Attio person matched the email (a clean miss is not an error).`,jsonMeta:null,format:null},attio_person_match:{order:90,label:`Attio person`,type:`json`,format:`json_object`,description:`One Attio person record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties. Match-pipe output also carries matched_by.`,jsonMeta:{zodSchema:Cn,exampleValue:wn}},attio_companies_found_count:{label:`Attio companies found`,type:`number`,format:`int`,description:`Number of Attio companies matching the domain. Exact domain values are unique (โค1); root-domain matching can legitimately return several subdomain records.`,jsonMeta:null},attio_company_match:{order:90,label:`Attio company`,type:`json`,format:`json_object`,description:`One Attio company record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties.`,jsonMeta:{zodSchema:Tn,exampleValue:En}},attio_company_matches:{order:90,label:`Attio company matches`,type:`json`,format:`json_list`,description:`All Attio companies matching the domain, each with id, url, matched_on, and the selected attributes.`,jsonMeta:{zodSchema:Dn,exampleValue:On}},attio_deals_found_count:{label:`Attio deals found`,type:`number`,format:`int`,description:`Number of Attio deals associated with the matched company or person.`,jsonMeta:null},attio_deal_match:{order:90,label:`Attio deal`,type:`json`,format:`json_object`,description:`One Attio deal record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties. Stage titles are workspace-defined.`,jsonMeta:{zodSchema:kn,exampleValue:An}},attio_deal_matches:{order:90,label:`Attio deal matches`,type:`json`,format:`json_list`,description:`Matched Attio deals (newest first), each with id, url, and the selected attributes.`,jsonMeta:{zodSchema:jn,exampleValue:Mn}},attio_entry_match:{order:90,label:`Attio list entry`,type:`json`,format:`json_object`,description:`One Attio list entry: entry id, the parent record's url and id, entry-level attribute values under entry_values, and picked parent attributes under custom_properties.`,jsonMeta:{zodSchema:Fn,exampleValue:In}},attio_record_found:{label:`Attio record found`,type:`boolean`,description:`Whether an Attio record was found (a clean miss is not an error).`,jsonMeta:null,format:null},attio_record_match:{order:90,label:`Attio record`,type:`json`,format:`json_object`,description:`One Attio record of any object (custom objects included): id, url, object, attribute values under values, and picked attributes under custom_properties.`,jsonMeta:{zodSchema:Nn,exampleValue:Pn}},attio_update_result:{label:`Attio update result`,type:`json`,format:`json_object`,description:`Result of the Attio update: id, url, object, and updated attribute slugs.`,jsonMeta:{zodSchema:zn,exampleValue:Bn}},attio_activities_found_count:{label:`Attio activities found`,type:`number`,format:`int`,description:`Number of Attio activities (notes, meetings, tasks) linked to the record โ the true total before the display cap.`,jsonMeta:null},attio_last_activity_date:{label:`Attio last activity date`,type:`string`,format:`datetime`,description:`Timestamp of the most recent Attio activity linked to the record โ the chainable staleness gate (null when there is none).`,jsonMeta:null},attio_activities:{order:90,label:`Attio activities`,type:`json`,format:`json_list`,description:`Per-record activity timeline merged from Attio notes, meetings, and tasks (newest first): each item carries id, type, title, content, occurred_at, url, and type-specific fields.`,jsonMeta:{zodSchema:pn,exampleValue:mn}},attio_workspace_member_id:{order:10,label:`Attio workspace member ID`,type:`string`,description:`Workspace member ID of the Attio user โ matches actor-reference attributes (e.g. a deal's owner) on other Attio records.`,jsonMeta:null,format:`text`},attio_workspace_member_match:{order:90,label:`Attio workspace member`,type:`json`,format:`json_object`,description:`One Attio workspace member: id, email, name, access level, and avatar URL.`,jsonMeta:{zodSchema:Ln,exampleValue:Rn}}},hs={is_claim_successful:{},is_enrolled:{},is_unenrolled:{},company_change_type:{},news_url:{},news_title:{},profile_change_type:{},bucket_counter:{},found_in_bucket:{},bucket_event_count:{},bucket_event_last_at:{},signal_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`signal`:`signals`}`}}:{}}},signal_match:{getStaticWidgets(e){let t=e&&typeof e==`object`&&`signal_label`in e&&typeof e.signal_label==`string`?e.signal_label:null;return t?{display_value:{label:t}}:{}}},signal_count:{},signal_window_start:{},formula_result:{},company_description:{},cleaned_company_name:{},company_industry:{},icypeas_person_match:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.firstname} ${t.lastname} profile`}}}},icypeas_company_match:{getStaticWidgets(e){return e?{display_value:{label:`${e.name} profile`}}:{}}},person_profile_match:{},primary_job_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},primary_seniority:{},primary_company_domain:{},company_region:{getStaticWidgets:e=>{let t={},n=us(e);return n&&(t.location_indicator={emoji:n}),t}},location_hint:{},estimated_revenue:{},founded_year:{},technology_list:{},spending_trend:{getStaticWidgets(e){let t=e;return{display_value:{label:`${t>3?`๐ผ๐ผ๐ผ`:t>1?`๐ผ๐ผ`:t>0?`๐ผ`:t<-3?`๐ฝ๐ฝ๐ฝ`:t<-1?`๐ฝ๐ฝ`:t<0?`๐ฝ`:``} ${Math.round(t*100)}%`}}}},technology_match_builtwith:{getStaticWidgets(e){return{display_value:{label:`Technology profile`}}}},number_of_social_followers:{},email:{},personal_email:{},alternate_personal_emails:{},company_news_summary:{},work_email:{},headcount:{},company_website_url:{},company_domain:{getStaticWidgets(e){return typeof e==`string`?{entity_logo:{entity:e,image_url:Jt(e)}}:{}}},company_name:{},first_name:{},addressee_name:{},address_line_1:{},address_line_2:{},job_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},job_posting_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},job_description:{},profile_headline:{},address_city:{},address_country:{},address_state:{},zip_code:{},last_name:{},is_work_email:{},name:{getStaticWidgets(e){return typeof e==`string`?{avatar:{image_url:``,name:e}}:{}}},ip_address:{},skills:{},avatar_url:{},string_input:{},domain:{},url_input:{},slugified:{},timestamp:{},http_response_status:{},http_response_body:{},http_response_headers:{},luma_id:{},registered_at:{},luma_event_guest_match:{getStaticWidgets(){return{display_value:{label:`Guest`}}}},google_calendar_event_id:{getStaticWidgets(e){return e?{entity_logo:{entity:`Google Calendar`,image_url:Jt(`calendar.google.com`)}}:{}}},event_title:{},attendee_emails:{},calendar_event_match:{getStaticWidgets(){return{display_value:{label:`Event`}}}},slack_user_id:{},slack_member_match:{getStaticWidgets(e){if(!e)return{};let t=e,n=t.member_real_name||t.member_display_name||t.member_handle;return n?{display_value:{label:n}}:{}}},estimated_salary:{},scrape_list_response:{},clado_person_match:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} profile`}}:{}}},clado_person_match_v2:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} profile`}}:{}}},company_social_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0}}},crustdata_profile_match_score:{},is_email_valid:{},amplemarket_person_match:{getStaticWidgets(){return{display_value:{label:`Person match`}}}},amplemarket_company_match:{getStaticWidgets(){return{display_value:{label:`Company match`}}}},profile_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0,icon:fs(e)?{key:`linkedin`}:void 0}}},company_profile_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0,icon:fs(e)?{key:`linkedin`}:void 0}}},developer_profile_url:{},alternative_developer_profile_urls:{},profile_posts:{getStaticWidgets(){return{display_value:{label:`LinkedIn posts`}}}},profile:{getStaticWidgets(e){return e?{display_value:{label:`${e.name||`Person`} LinkedIn profile`}}:{}}},clado_person_profile:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} match`}}:{}}},email_subject:{},message:{},slack_message_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},slack_direct_message_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},resend_email_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},email_body:{},mobile:{},landline:{},phone:{},funding_history:{},funding_total_usd:{},deal_name:{},deal_amount:{},leadmagic_competitor_list:{getStaticWidgets(e){return e?{display_value:{label:e.map(e=>e.company_name).slice(0,4).join(`, `)}}:{}}},leadmagic_acquisition_history:{getStaticWidgets(e){return e?{display_value:{label:e.map(e=>e.company_name).slice(0,4).join(`, `)}}:{}}},leadmagic_company_news_list:{getStaticWidgets(e){return e?{display_value:{label:`${e.length} news sources`}}:{}}},merge_result:{},website_markdown:{getStaticWidgets(e){return e?{display_value:{label:`๐ Markdown result`}}:{}}},urls:{},website_html:{},website_url:{},website_links:{},mapped_links:{},firecrawl_extract_result:{getStaticWidgets(){return{display_value:{label:`Extract result`}}}},parallel_extract_result:{getStaticWidgets(){return{display_value:{label:`Extract result`}}}},exa_match_evaluation:{getStaticWidgets(){return{display_value:{label:`Exa match`}}}},email_validation_status:{},million_validation_match:{getStaticWidgets(){return{display_value:{label:`Validation result`}}}},post_list_string:{},crustdata_post_list:{getStaticWidgets(e){return{entity_logo:{entity:`LinkedIn`,image_url:qt.linkedin}}}},crustdata_company_match:{},crustdata_company_match_v2:{},crustdata_company_identity_matches:{},crustdata_person_match:{},parallel_person_entity_match:{},parallel_company_entity_match:{},resend_contact_id:{},lemlist_lead_id:{},hubspot_contact_found:{},hubspot_contact_match:{},hubspot_companies_found_count:{},hubspot_company_match:{},hubspot_company_matches:{},hubspot_deals_found_count:{},hubspot_deal_match:{},hubspot_object_id:{getStaticWidgets(){return{entity_logo:{entity:`Hubspot`,image_url:en(`hubspot`).logoUrl}}}},hubspot_owner_id:{getStaticWidgets(){return{entity_logo:{entity:`Hubspot`,image_url:en(`hubspot`).logoUrl}}}},hubspot_owned_count:{},hubspot_owner_match:{},hubspot_deal_matches:{},hubspot_update_result:{},hubspot_associated_count:{},hubspot_associated_objects:{},hubspot_activity_result:{},salesforce_record_id:{getStaticWidgets(){return{entity_logo:{entity:`Salesforce`,image_url:en(`salesforce`).logoUrl}}}},salesforce_owned_count:{},salesforce_person_found:{},salesforce_accounts_found_count:{},salesforce_opportunities_found_count:{},salesforce_record_found:{},salesforce_record_created:{},salesforce_contact_match:{},salesforce_lead_match:{},salesforce_account_match:{},salesforce_account_matches:{},salesforce_opportunity_match:{},salesforce_opportunity_matches:{},salesforce_user_match:{},salesforce_person_match:{},salesforce_record_match:{},salesforce_update_result:{},salesforce_activities_found_count:{},salesforce_last_activity_date:{},salesforce_activities:{},salesforce_activity_result:{},lemlist_enrollment_result:{getStaticWidgets(e){return e?{display_value:{label:`Enrolled`}}:{}}},amplemarket_sequence_id:{},sheet_record_id:{},sheet_record_ids:{},sheet_rows_found_count:{},sheet_deleted_count:{},sheet_found_rows:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.length} row${t.length===1?``:`s`}`}}}},sheet_found_row_ids:{},db_rows_found_count:{},db_found_rows:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.length} row${t.length===1?``:`s`}`}}}},companyenrich_match:{},companyenrich_matches:{},input_objects:{},role_finder_match:{},role_finder_person_match:{},role_finder_matches:{},role_finder_match_count:{},sheet:{},logodev_describe_match:{getStaticWidgets(){return{display_value:{label:`Match`}}}},logo_url:{getStaticWidgets(){return{display_value:{label:`Logo URL`}}}},post_match:{},post_text:{},post_id:{getStaticWidgets(){return{display_value:{label:`id`,marks:[`underline`]}}}},x_post_match:{getStaticWidgets(){return{entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}}},hn_item_id:{getStaticWidgets(e){return{display_value:{label:`id`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://news.ycombinator.com/item?id=${encodeURIComponent(e)}`}}:{}}}},hn_item_url:{},hn_username:{getStaticWidgets(e){return typeof e==`string`&&e?{external_link:{url:`https://news.ycombinator.com/user?id=${encodeURIComponent(e)}`}}:{}}},hn_item_match:{},rss_item_title:{},rss_item_published_at:{},rss_item_url:{},rss_item_match:{},calcom_booking_uid:{getStaticWidgets(e){return{display_value:{label:`uid`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://app.cal.com/booking/${encodeURIComponent(e)}`}}:{}}}},calcom_booking_match:{},email_text:{},email_message:{},crustdata_company_change_match:{},crustdata_profile_change_match:{},x_post_id:{getStaticWidgets(e){return{display_value:{label:`id`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://x.com/i/web/status/${encodeURIComponent(e)}`}}:{}}}},x_post_url:{},x_user_id:{getStaticWidgets(){return{display_value:{label:`id`,marks:[`underline`]}}}},x_username:{getStaticWidgets(e){return typeof e!=`string`||!e?{}:{external_link:{url:`https://x.com/${encodeURIComponent(e)}`}}}},x_post_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`post`:`posts`}`},entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}:{}}},ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},ad_count:{},google_ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},google_ad_count:{},meta_ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},meta_ad_count:{},x_profile_match:{getStaticWidgets(){return{entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}}},open_job_match:{},open_job_matches:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} open ${e.length===1?`job`:`jobs`}`}}:{}}},open_job_match_count:{},open_job_company_match:{},job_url:{},mobile_number:{},created_sheet:{},professional_profile:{},professional_profile_url:{},crustdata_companyenrich_match:{},template_output:{},zerobounce_validation_match:{},zerobounce_validation_status:{getStaticWidgets(e){return{display_value:{label:e===`valid`?`โ
Valid`:e===`invalid`?`โ Invalid`:e===`catch-all`?`โพ๏ธ Catch All`:e===`abuse`?`โ ๏ธ Abuse`:e===`do_not_mail`?`โโ Do not mail`:e===`spamtrap`?`โโโ Spam Trap`:e}}}},gmail_email_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},gmail_draft_id:{getStaticWidgets(e){return{display_value:{label:e?`โ
Draft created`:`โ No draft`}}}},attio_record_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_entry_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_person_found:{},attio_person_match:{},attio_companies_found_count:{},attio_company_match:{},attio_company_matches:{},attio_deals_found_count:{},attio_deal_match:{},attio_deal_matches:{},attio_entry_match:{},attio_record_found:{},attio_record_match:{},attio_update_result:{},attio_activities:{},attio_activities_found_count:{},attio_last_activity_date:{},attio_workspace_member_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_workspace_member_match:{}};function _(e){return{...ms[e],name:e}}function gs(e,t){if(ys(e,t))return hs[e]}function _s(e){return e in ms}function vs(e){return _s(e)?ms[e].order??null:null}function ys(e,t){return e in ms?ms[e].format===t:!1}function bs(e,t,n){if(!t.added_by||t.added_by.ref===`input`||t.added_by.pipe_index==null)throw Error(`Tried to find output field info for field not generated by pipe: ${e}, added_by: ${t.added_by}`);let r=n.orderedPipeInstances[t.added_by.pipe_index];if(!r)throw Error(`Unable to find pipe instance at index ${t.added_by.pipe_index} for resolved field ${e}`);let i=Object.entries(r.getOutputFields()).find(([t,n])=>n.resolvedName===e);if(!i)throw Error(`Resolved pipe output field '${e}' not found for pipe ${t.added_by.ref}`);let[a,o]=i;return{fieldName:a,...o}}const xs=r.enum(`company_description.cleaned_company_name.company_industry.company_region.location_hint.estimated_revenue.founded_year.technology_list.spending_trend.technology_match_builtwith.number_of_social_followers.email.personal_email.alternate_personal_emails.company_news_summary.work_email.headcount.company_website_url.company_domain.company_name.first_name.addressee_name.address_line_1.address_line_2.job_title.job_description.profile_headline.address_city.address_country.address_state.zip_code.last_name.is_work_email.companyenrich_match.companyenrich_matches.name.ip_address.skills.avatar_url.estimated_salary.is_email_valid.profile_url.developer_profile_url.alternative_developer_profile_urls.company_profile_url.profile_posts.clado_person_match.clado_person_match_v2.icypeas_person_match.icypeas_company_match.clado_person_profile.resend_email_success.email_body.email_subject.profile.mobile.landline.phone.message.slack_message_success.slack_direct_message_success.slack_user_id.slack_member_match.funding_history.funding_total_usd.deal_name.deal_amount.template_output.gmail_email_success.gmail_draft_id.zerobounce_validation_status.zerobounce_validation_match.leadmagic_competitor_list.leadmagic_acquisition_history.leadmagic_company_news_list.merge_result.mapped_links.website_markdown.website_html.website_url.urls.website_links.firecrawl_extract_result.parallel_extract_result.exa_match_evaluation.email_validation_status.million_validation_match.scrape_list_response.resend_contact_id.sheet_record_id.sheet_record_ids.sheet_rows_found_count.sheet_deleted_count.sheet_found_rows.sheet_found_row_ids.db_rows_found_count.db_found_rows.input_objects.role_finder_match.role_finder_person_match.role_finder_matches.role_finder_match_count.logodev_describe_match.logo_url.crustdata_company_match.crustdata_company_match_v2.crustdata_companyenrich_match.crustdata_company_identity_matches.crustdata_person_match.person_profile_match.primary_job_title.primary_seniority.primary_company_domain.parallel_person_entity_match.parallel_company_entity_match.post_list_string.crustdata_post_list.crustdata_profile_match_score.amplemarket_person_match.amplemarket_company_match.created_sheet.sheet.string_input.domain.url_input.slugified.timestamp.http_response_status.http_response_body.http_response_headers.luma_id.registered_at.luma_event_guest_match.google_calendar_event_id.event_title.attendee_emails.calendar_event_match.post_match.post_text.post_id.hn_item_id.hn_item_url.hn_username.hn_item_match.rss_item_title.rss_item_published_at.rss_item_url.rss_item_match.calcom_booking_uid.calcom_booking_match.email_text.email_message.crustdata_company_change_match.crustdata_profile_change_match.x_post_id.x_post_url.x_user_id.x_username.x_post_match.x_post_list.x_profile_match.ad_list.ad_count.google_ad_list.google_ad_count.meta_ad_list.meta_ad_count.open_job_match.open_job_matches.open_job_match_count.open_job_company_match.job_posting_title.job_url.lemlist_lead_id.lemlist_enrollment_result.amplemarket_sequence_id.is_claim_successful.is_enrolled.is_unenrolled.company_change_type.news_url.news_title.profile_change_type.bucket_counter.found_in_bucket.bucket_event_count.bucket_event_last_at.signal_list.signal_match.signal_count.signal_window_start.formula_result.hubspot_contact_found.hubspot_contact_match.hubspot_companies_found_count.hubspot_company_match.hubspot_company_matches.hubspot_deals_found_count.hubspot_deal_match.hubspot_deal_matches.hubspot_owner_id.hubspot_owned_count.hubspot_owner_match.hubspot_object_id.hubspot_update_result.hubspot_associated_count.hubspot_associated_objects.hubspot_activity_result.salesforce_record_id.salesforce_owned_count.salesforce_person_found.salesforce_accounts_found_count.salesforce_opportunities_found_count.salesforce_record_found.salesforce_record_created.salesforce_contact_match.salesforce_lead_match.salesforce_account_match.salesforce_account_matches.salesforce_opportunity_match.salesforce_opportunity_matches.salesforce_user_match.salesforce_person_match.salesforce_record_match.salesforce_update_result.salesforce_activities.salesforce_activities_found_count.salesforce_last_activity_date.salesforce_activity_result.attio_record_id.attio_entry_id.attio_person_found.attio_person_match.attio_companies_found_count.attio_company_match.attio_company_matches.attio_deals_found_count.attio_deal_match.attio_deal_matches.attio_entry_match.attio_record_found.attio_record_match.attio_update_result.attio_activities.attio_activities_found_count.attio_last_activity_date.attio_workspace_member_id.attio_workspace_member_match.professional_profile_url.professional_profile.company_social_url.mobile_number`.split(`.`)),Ss=r.enum(`pipe0.findymail.crustdata.hunter.zerobounce.millionverifier.googlemaps.gemini.anthropic.leadmagic.mixrank.builtwith.perplexity.serper.icypeas.prospeo.clado.resend.slack.gmail.googlecalendar.firecrawl.exa.openai.companyenrich.logodev.amplemarket.parallel.surfe.wiza.luma.postgres.databricks.lemlist.hubspot.salesforce.attio.x.hackernews.calcom`.split(`.`)),Cs=r.enum([`production`,`sandbox`]),ws=`prompt:run@1.agent:run@1.company:newssummary:website@1.company:newssummary:domain@1.company:techstack:builtwith@1.company:techstack:builtwith@2.company:websiteurl:email@1.company:domain:workemail@1.company:funding:leadmagic@1.company:funding:leadmagic@2.company:funding:waterfall@1.people:workemail:waterfall@1.person:workemail:waterfall@1.people:email:iswork@1.email:iswork@1.people:name:split@1.person:name:split@1.person:name:join@1.people:validate:email:zerobounce@1.people:email:validate:zerobounce@2.email:validate:zerobounce@1.people:mobilenumber:workemail:waterfall@1.company:overview@1.company:overview@2.company:overview@3.json:extract:multi@1.email:write@1.message:write@1.email:send:resend@1.email:send:gmail@1.email:draft:gmail@1.message:send:slack@1.message:send-direct:slack@1.template:fill@1.contact:create:resend@1.lead:enroll:lemlist@1.contact:match:hubspot@1.company:match:hubspot@1.deal:match:hubspot@1.object:update:hubspot@1.object:associations:hubspot@1.activity:log:hubspot@1.person:match:salesforce@1.account:match:salesforce@1.opportunity:match:salesforce@1.record:lookup:salesforce@1.record:update:salesforce@1.record:assert:salesforce@1.activities:find:salesforce@1.activity:log:salesforce@1.person:match:attio@1.company:match:attio@1.deal:match:attio@1.record:match:attio@1.record:lookup:attio@1.record:update:attio@1.activities:find:attio@1.lead:enroll:amplemarket@1.people:match:role:waterfall@1.person:match:role:waterfall@1.role:waterfall@1.roles:waterfall@1.person:identity:amplemarket@1.company:identity@2.company:identity@3.company:identity:crustdata@1.person:match:amplemarket@1.people:phone:profile:waterfall@1.person:mobile:profileurl:waterfall@1.people:personalemail:profile:waterfall@1.person:personalemail:profileurl:waterfall@1.people:profile:waterfall@1.person:profile:waterfall@1.person:profile:waterfall@2.people:profileurl:email:waterfall@1.person:profileurl:email:waterfall@1.person:profileurl:name@1.people:email:validate:zerobounce@1.person:email:validate:millionverifier@1.people:phone:workemail:waterfall@1.person:mobile:workemail:waterfall@1.fields:merge@1.field:slugify@1.field:domainify@1.field:timestamp@1.formula:run@1.signals:personprofilematch@1.website:scrape:firecrawl@1.website:scrapelist:firecrawl@1.website:extract:firecrawl@1.website:extract:parallel@1.website:maplinks:firecrawl@1.website:markdown:parallel@1.row:append:sheet@1.row:expandappend:sheet@1.row:roundrobin:sheet@1.bucket:claim@1.stream:enroll@1.stream:unenroll@1.bucket:count@1.bucket:check@1.bucket:countif@1.rows:find:sheet@1.rows:delete:sheet@1.rows:find:postgres@1.rows:find:databricks@1.company:lookalikes:companyenrich@1.company:lookalikes:companyenrich@2.company:match:logodev@1.company:match:logodev@2.person:posts:content:crustdata@1.profile:posts:x@1.post:create:x@1.ads:linkedin:waterfall@1.ads:google:waterfall@1.ads:meta:waterfall@1.company:match:crustdata@1.company:match:crustdata@2.company:match:amplemarket@1.company:jobs:amplemarket@1.people:profile:workemail:crustdata@1.person:profile:workemail:crustdata@1.people:workemail:profileurl:waterfall@1.person:workemail:profileurl:waterfall@1.people:identity:email:waterfall@1.person:identity:email:waterfall@1.person:identity:email:waterfall@2.person:devprofileurl:profileurl:waterfall@1.http:request@1.company:identity@1.people:professionalprofile:waterfall@1.people:professionalprofileurl:name@1.people:professionalprofileurl:email:waterfall@1.people:mobilenumber:professionalprofile:waterfall@1`.split(`.`),Ts=r.enum(ws),Es=[`string`,`number`,`boolean`,`json`,`unknown`],Ds=r.enum(Es),Os=r.union([r.number(),r.string()]),ks=r.union([r.literal(`completed`),r.literal(`failed`),r.literal(`pending`),r.literal(`queued`),r.literal(`processing`),r.literal(`no_result`),r.literal(`skipped`)]),As=r.union([r.string().min(1),r.number(),r.boolean(),r.null(),r.record(r.string(),r.unknown()),r.array(r.unknown())]),js=r.object({example_value:r.any().nullable(),schema:r.any().nullable()}),Ms=r.object({type:r.literal(`static`).optional()}),Ns=Ms.extend({image_url:r.url().describe(`URL to the provider's logo image.`),entity:r.string().describe(`The name of the entity.`)}),Ps=Ms.extend({emoji:r.string().describe(`Country flag emoji.`)}),Fs=Ms.extend({url:r.url().describe(`Destination opened when the external-link icon is clicked.`)}),Is=Ms.extend({image_url:r.url().describe(`URL to the provider's logo image.`),name:r.string().describe(`The name of the avatar owner.`)}),Ls=Ms.extend({attempted_providers:r.array(r.object({provider:Ss})),available_providers:r.array(Ss),successful_provider:Ss.optional()}),Rs=r.enum([`linkedin`,`job`]),zs=Ms.extend({key:Rs}).optional(),Bs=Ms.extend({result_status:r.enum([`completed`,`failed`])}).optional(),Vs=Ms.extend({list:r.array(r.object({source:r.string(),description:r.string().optional(),url:r.string()}))}).optional(),Hs=Ms.extend({numeric:r.int().min(1).max(5)}).optional(),Us=Ms.extend({value:r.string().min(1)}).optional(),Ws=r.enum([`bold`,`italic`,`underline`,`strikethrough`]),Gs=r.object({display_value:Ms.extend({label:r.string().optional(),marks:r.array(Ws).optional()}),entity_logo:Ns.optional(),external_link:Fs.optional(),location_indicator:Ps.optional(),avatar:Is.optional(),waterfall:Ls.optional(),icon:zs,action_summary:Bs,sources:Vs,confidence:Hs,emoji:Us}).partial().describe(`A map of widgets associated with this field for UI display, keyed by widget type.`),Ks=r.object({code:r.string(),message:r.string(),path:r.string().optional()}),qs=r.object({code:r.string(),summary:r.string(),message:r.string()}),Js=[`json_object`,`json_list`,`json_list_string`,`url`,`website_url`,`profile_url`,`email`,`datetime`,`currency`,`date`,`phone`,`markdown`,`long_text`,`text`,`int`,`decimal`,`address_line_1`,`zip_code`,`percent`],Ys=r.enum(Js);Ys.nullable();const Xs=r.object({type:Ds,label:r.string().nullable().optional(),format:Ys.nullable().optional(),json_metadata:js.nullable().optional(),order:r.number().nullable().optional()}),Zs=r.record(r.string(),Xs),Qs=r.strictObject({order:r.number().int().gte(-1e9).lte(1e9).nullable()}),$s=r.enum([...ws,`input`]).nullable(),ec=r.enum([...ws,`input`,`system`]).nullable(),tc=r.object({ref:$s,config_hash:r.string().nullable()}),nc=r.object({ref:ec,environment:Cs.nullable(),config_hash:r.string().nullable(),input_hash:r.string().nullable()}),rc=r.object({value:As,status:ks,type:Ds,reason:qs.nullable(),claimed_by:tc,resolved_by:nc.nullable(),widgets:Gs.optional(),format:Ys.nullable()}),ic=r.object({value:As,status:ks,reason:qs.nullable().optional(),type:Ds.optional(),format:Ys.nullable().optional(),claimed_by:tc.optional(),resolved_by:nc.nullable().optional(),widgets:Gs.optional()}),ac=r.record(r.string(),r.union([As,ic])).openapi(`PipesInput`),oc=r.object({id:Os,fields:r.record(Os,rc)}),sc=r.object({type:r.literal(`catalog`),fieldName:r.string().min(1)}),cc=r.object({type:Ds,label:r.string(),added_by:r.object({ref:r.union([Ts,r.literal(`input`)]),config_hash:r.string().nullable(),pipe_index:r.number().nullable()}),format:Ys.nullable(),is_primary_output:r.boolean(),order:r.number().nullable().optional()}),lc=r.record(r.string(),cc),uc=r.object({field_name:r.string().min(1),extractions:r.array(r.object({path:r.string().min(1),output_field:r.object({name:r.string().min(1),format:Ys.nullable().default(null),label:r.string().optional(),type:Ds})})).min(1).check(e=>{let t=new Set;Object.values(e.value).forEach(n=>{t.has(n.output_field.name)?e.issues.push({code:`custom`,message:`Output field names must be unique. The name ${n.output_field.name} exists more than once in your config.`,input:e.value}):t.add(n.output_field.name)})})}),dc=r.enum([`eq`,`neq`,`gt`,`gte`,`lt`,`lte`,`contains`,`matches`,`older_than_days`,`within_last_days`]),fc={eq:`equals`,neq:`not equals`,gt:`greater than`,gte:`greater than or equal`,lt:`less than`,lte:`less than or equal`,contains:`contains`,matches:`matches regex`,older_than_days:`older than (days)`,within_last_days:`within last (days)`},pc=[`eq`,`neq`,`gt`,`gte`,`lt`,`lte`,`contains`,`matches`,`older_than_days`,`within_last_days`],mc=[`eq`,`neq`],hc=r.object({type:r.literal(`vault`),connection:r.string().refine(e=>{let t=e.split(`_`)[0];return t!=null&&Ss.safeParse(t).success},{message:`Invalid vault connection string: expected the full provider-prefixed value (e.g. "slack_my-workspace") where the segment before the first "_" is a known provider name. Copy the string exactly as the vault lists it โ never strip the prefix.`})}),gc=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(hc)}).nullable().optional(),_c=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(hc).min(1,{message:`Provide your own credentials to use this object.`})},{error:`Provide your own credentials to use this object.`}),vc=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(r.object({type:r.literal(`vault`),connection:r.string()})).max(0,{message:`This pipe does not support custom connectors.`})}).optional().nullable(),yc=r.enum(pc),bc=r.enum(mc),xc=r.enum([`failed`,`no_result`,`completed`,`skipped`]),Sc=r.object({property:r.literal(`value`).describe(`Compare the actual field value. Use operators: eq, neq, gt, gte, lt, lte, contains, matches, older_than_days, within_last_days.`),field_name:r.string().min(1,{message:`Provide a target field for the condition.`}).describe(`Name of a field from the input data or produced by another pipe in the payload.`),operator:yc.describe(`Comparison operator: "eq", "neq", "gt", "gte", "lt", "lte", "contains", "matches" (regex), "older_than_days" / "within_last_days" (relative to now, evaluated at run time โ for date/datetime fields).`),value:r.union([r.number(),r.string(),r.boolean(),r.null()]).describe(`The value to compare the field against. Must be a primitive (string, number, boolean, or null). For older_than_days/within_last_days it is the number of days.`).check(e=>{(e.value===void 0||e.value===``)&&e.issues.push({code:`custom`,input:e.value,message:`Provide a value to compare against.`}),typeof e.value==`object`&&e.value!==null&&e.issues.push({code:`custom`,input:e.value,message:`Conditions can only be defined on primitive fields. To apply a condition on a JSON value, expand it into an object first.`})})}),Cc=r.object({property:r.literal(`status`).describe(`Compare the field resolution status instead of its value. Use operators: eq, neq.`),field_name:r.string().min(1).describe(`Name of a field from the input data or produced by another pipe in the payload.`),operator:bc.describe(`Status comparison operator: "eq" or "neq".`),value:xc.describe(`Field status to compare against: "completed", "no_result", "failed", or "skipped".`)}),wc=r.object({logic:r.enum([`and`,`or`]).describe(`"and" = all conditions must match. "or" = any condition matches.`),conditions:r.array(r.discriminatedUnion(`property`,[Sc,Cc])).min(1).describe(`Array of conditions to evaluate. Each condition checks either a field value or its resolution status.`)}).describe(`Condition block. All conditions are combined with the chosen logic (and/or).`),Tc=r.object({logic:r.enum([`and`,`or`]).describe(`"and" = all conditions must match. "or" = any condition matches.`),conditions:r.array(Sc).min(1).describe(`Array of value conditions to evaluate.`)}).describe(`Condition block. All conditions are combined with the chosen logic (and/or).`),Ec=r.object({action:r.enum([`run`]).default(`run`).describe(`What to do when conditions match. Defaults to "run" (run the pipe only on matching records). Reserved for future extension.`),when:wc}).describe(`Run-if gate for a pipe. When set, the pipe only runs on records matching the conditions. Example: { "when": { "logic": "and", "conditions": [{ "property": "status", "field_name": "work_email", "operator": "neq", "value": "no_result" }] } }`),Dc=[`if`,`elsif`,`else`,`endif`,`unless`,`endunless`,`for`,`endfor`,`break`,`continue`,`output`],Oc=[`json`,`escape`,`escape_once`,`default`,`upcase`,`downcase`,`size`,`join`,`first`,`last`,`replace`,`truncate`,`strip`,`newline_to_br`,`url_encode`],kc=/^[A-Z][A-Z0-9_]*$/,Ac=/^[A-Z][A-Z0-9_]*$/,jc=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Mc=new Set(Dc),Nc=new Set(Oc),Pc=e=>`{${e}}`;var Fc=class extends u{constructor(e){super(),this.values=e}liquidMethodMissing(e){let t=String(e);if(!kc.test(t))throw Error(`Secret key "${t}" must be uppercase letters, digits, and underscores (e.g. SECRETS.API_KEY).`);if(!(t in this.values))throw Error(`Missing secret: SECRETS.${t}`);return this.values[t]}},Ic=class extends u{constructor(e){super(),this.values=e}liquidMethodMissing(e){let t=String(e);if(!Ac.test(t))throw Error(`Constant key "${t}" must be uppercase letters, digits, and underscores (e.g. CONSTANTS.PROMO).`);if(!(t in this.values))throw Error(`Missing constant: CONSTANTS.${t}`);return this.values[t]}};function Lc(e){let t=e.trim();if(!t)throw Error(`Empty {% output %} tag โ expected at least a name (e.g. {% output rec, type: "string", description: "..." %}).`);let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*(?:,|$)/);if(!n||!n[1])throw Error(`Invalid {% output %} tag โ expected a name as the first argument, got: ${t}`);let r=n[1];if(!jc.test(r))throw Error(`Invalid {% output %} tag name "${r}" โ must start with a letter or underscore and contain only letters, digits, and underscores.`);let i=t.slice(n[0].length).trim(),a={},o=/([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(?:"((?:\\.|[^"\\])*)"|'((?:\\.|[^'\\])*)'|(true|false))\s*(?:,|$)/g,s=0,c;for(;(c=o.exec(i))!==null;){s=c.index+c[0].length;let e=c[1],t=c[2]??c[3]??c[4];c[4]===void 0?a[e]=t:a[e]=t===`true`}if(i&&s<i.length)throw Error(`Invalid {% output %} tag โ could not parse arguments after "${i.slice(s)}". Expected key: "value" pairs.`);let l=a.type;if(typeof l!=`string`||!l)throw Error(`{% output ${r} %} tag is missing required "type" argument (e.g. type: "string").`);let u=a.description;if(typeof u!=`string`||!u)throw Error(`{% output ${r} %} tag is missing required "description" argument (e.g. description: "What this means.").`);return{name:r,type:l,description:u,required:typeof a.required==`boolean`?a.required:!0,format:typeof a.format==`string`?a.format:null,schemaRef:typeof a.schema==`string`?a.schema:null}}function gee(){let e=new d({strictVariables:!1,strictFilters:!0,jsTruthy:!0,greedy:!1,catchAllErrors:!1,ownPropertyOnly:!0,outputEscape:(e=>typeof e==`object`&&e&&!(e instanceof u)?JSON.stringify(e):e)});e.registerTag(`output`,{parse(e,t){let n=Lc(e.args);this.outputDecl=n},render(e,t){let n=this.outputDecl;if(!(e.globals&&e.globals.__outputAllowed))throw Error(`{% output %} is not allowed in this template (referenced output "${n.name}").`);t.write(Pc(n.name))}});for(let t of Object.keys(e.tags))Mc.has(t)||delete e.tags[t];for(let t of Object.keys(e.filters))Nc.has(t)||delete e.filters[t];return e}let Rc=null;function zc(){return Rc||=gee(),Rc}function Bc(e){let t={};for(let[n,r]of Object.entries(e.inputs??{}))t[n]=typeof r==`string`?r.trim():r;return t.SECRETS=new Fc(e.secrets??{}),t.CONSTANTS=new Ic(e.constants??{}),t}async function _ee(e,t,n={}){let r=zc(),i=n.renderLimitMs??250,a=Bc(t),o={globals:{__outputAllowed:n.outputAllowed===!0},renderLimit:i},s=await Promise.race([r.parseAndRender(e,a,o),new Promise((e,t)=>setTimeout(()=>t(Error(`Liquid render exceeded ${i}ms.`)),i))]);return String(s)}function vee(e,t,n={}){let r=zc(),i=n.renderLimitMs??250,a=Bc(t),o=r.parseAndRenderSync(e,a,{globals:{__outputAllowed:n.outputAllowed===!0},renderLimit:i});return String(o)}function yee(e){return zc().parse(e)}function Vc(e){let t=zc().parse(e),n={scopeStack:[],guardStack:[],inputs:new Map,secrets:new Set,constants:new Set,outputs:[],forDepth:0};Hc(t,n);let r={};for(let[e,t]of n.inputs)r[e]={required:t.unguardedRefs>0};return{inputs:r,secrets:[...n.secrets],constants:[...n.constants],outputs:n.outputs}}function Hc(e,t){for(let n of e)bee(n,t)}function bee(e,t){let n=e;if(n.value&&typeof n.value==`object`&&`filters`in n.value&&`initial`in n.value){Uc(n.value,t,!1);return}if(typeof n.name==`string`){xee(n,t);return}}function xee(e,t){switch(e.name){case`for`:See(e,t);return;case`if`:case`unless`:Cee(e,t);return;case`output`:wee(e,t);return;case`break`:case`continue`:return;default:throw Error(`Unhandled liquid tag in analyzer: ${e.name}`)}}function See(e,t){if(t.forDepth+=1,t.forDepth>3)throw Error(`Liquid template exceeds maximum nested {% for %} depth of 3.`);e.collection!==void 0&&e.collection!==null&&Wc(e.collection,t,!1);let n=typeof e.variable==`string`?e.variable:null;n&&t.scopeStack.push(n),Hc(Array.isArray(e.templates)?e.templates:[],t),n&&t.scopeStack.pop(),Hc(Array.isArray(e.elseTemplates)?e.elseTemplates:[],t),--t.forDepth}function Cee(e,t){let n=Array.isArray(e.branches)?e.branches:[];e.name;for(let e=0;e<n.length;e++){let r=n[e],i=r.value,a=null;e===0&&i&&typeof i==`object`&&(a=Kc(i.initial)),a&&t.guardStack.push(a),i&&typeof i==`object`&&Uc(i,t,!1),Hc(r.templates,t),a&&t.guardStack.pop()}Hc(Array.isArray(e.elseTemplates)?e.elseTemplates:[],t)}function wee(e,t){let n=e.outputDecl;if(!n){let t=e.token?.args;typeof t==`string`&&(n=Lc(t))}if(!n)throw Error(`Internal: {% output %} tag missing parsed declaration.`);t.outputs.push({name:n.name,type:n.type,description:n.description,required:n.required,format:n.format,schemaRef:n.schemaRef??void 0})}function Uc(e,t,n){let r=e.filters.some(e=>e.name===`default`),i=n||r;for(let n of e.initial.postfix)qc(n)&&Gc(n,t,i);for(let n of e.filters)for(let e of n.args)Tee(e,t)}function Wc(e,t,n){qc(e)&&Gc(e,t,n)}function Tee(e,t){if(Array.isArray(e)){let n=e[1];n&&Wc(n,t,!1)}else Wc(e,t,!1)}function Gc(e,t,n){let r=e.props;if(r.length===0)return;let i=r[0];if(!i||!Jc(i))return;let a=i.content;if(t.scopeStack.includes(a))return;if(a===`SECRETS`){let e=r[1];if(!e||!Jc(e))throw Error(`Invalid SECRETS reference โ expected SECRETS.KEY (got ${Zc(r)}).`);let n=e.content;if(!kc.test(n))throw Error(`Invalid SECRETS key "${n}" โ must be uppercase letters, digits, and underscores (e.g. SECRETS.API_KEY).`);t.secrets.add(n);return}if(a===`CONSTANTS`){let e=r[1];if(!e||!Jc(e))throw Error(`Invalid CONSTANTS reference โ expected CONSTANTS.KEY (got ${Zc(r)}).`);let n=e.content;if(!Ac.test(n))throw Error(`Invalid CONSTANTS key "${n}" โ must be uppercase letters, digits, and underscores (e.g. CONSTANTS.PROMO).`);t.constants.add(n);return}let o=n||t.guardStack.includes(a),s=t.inputs.get(a)??{unguardedRefs:0,guardedRefs:0};o?s.guardedRefs+=1:s.unguardedRefs+=1,t.inputs.set(a,s)}function Kc(e){if(e.postfix.length===1){let t=e.postfix[0];if(t&&qc(t)&&t.props.length===1){let e=t.props[0];if(e&&Jc(e))return e.content}}if(e.postfix.length===3){let[t,n,r]=e.postfix;if(t&&n&&r&&qc(t)&&t.props.length===1){let e=t.props[0];if(e&&Jc(e)&&Yc(n)&&Xc(r,[`==`,`!=`]))return e.content}}return null}function qc(e){return e.kind===f.PropertyAccess}function Jc(e){return!!e&&typeof e==`object`&&e.kind===f.Word}function Yc(e){if(e.kind!==f.Literal)return!1;let t=e.literal;return t===`nil`||t===`null`}function Xc(e,t){return e.kind===f.Operator?t.includes(e.operator):!1}function Zc(e){let t=[];for(let n of e)n&&Jc(n)?t.push(n.content):t.push(`?`);return t.join(`.`)}const Qc=`default`;function $c(e){let t=e.split(`_`),n=t[0],r=t.slice(1).join(`_`);if(!n)throw Error(`connection string of invalid format`);try{return{provider:Ss.parse(n),id:r}}catch{throw Error(`Connection string ${e}: Failed to parse provider name.`)}}function el(e){return`${e.provider}_${e.id}`}const tl=new p;function nl(e){return tl.validateSchema(e)}function rl(e){let t=!1;return m(e,{},e=>{e.type&&[`string`,`number`,`boolean`,`integer`,`null`].includes(e.type)&&(t=!0),e.type===`object`&&e.properties&&Object.keys(e.properties).length>0&&(t=!0),e.type===`array`&&e.items&&(t=!0)}),!t}function il(e){try{return JSON.parse(e)}catch{}return JSON.parse(ll(e))}function al(e){try{return il(e)}catch{return}}const ol=/[A-Za-z_$]/,sl=/[\w$]/,cl=/\s/;function ll(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`||i===`'`){let a=i,o=``;for(n++;n<r&&e[n]!==a;){if(e[n]===`\\`){o+=`\\${e[n+1]??``}`,n+=2;continue}o+=e[n],n++}n++,t+=JSON.stringify(ul(o));continue}if(ol.test(i)){let i=n;for(;i<r&&sl.test(e[i]);)i++;let a=e.slice(n,i),o=i;for(;o<r&&cl.test(e[o]);)o++;t+=e[o]===`:`?JSON.stringify(a):a,n=i;continue}if(i===`,`){let t=n+1;for(;t<r&&cl.test(e[t]);)t++;if(e[t]===`}`||e[t]===`]`){n++;continue}}t+=i,n++}return t}function ul(e){let t=``;for(let n=0;n<e.length;n++){if(e[n]!==`\\`){t+=e[n];continue}let r=e[++n];switch(r){case`n`:t+=`
|
|
68
|
-
`;break;case`t`:t+=` `;break;case`r`:t+=`\r`;break;case`b`:t+=`\b`;break;case`f`:t+=`\f`;break;case`v`:t+=`\v`;break;case`0`:t+=`\0`;break;case`u`:{let r=e.slice(n+1,n+5);/^[0-9a-fA-F]{4}$/.test(r)?(t+=String.fromCharCode(Number.parseInt(r,16)),n+=4):t+=`u`;break}default:t+=r??``;break}}return t}const v=(e,t=`Add a ${e} connection to enable this field`)=>n=>(n.connector?.connections??[]).some(t=>t?.connection?.startsWith(`${e}_`))?{disabled:!1}:{disabled:!0,message:t},dl=(e,t)=>n=>{let r=e(n);return r!=null&&r!==``?{disabled:!1}:{disabled:!0,message:t}},fl=(...e)=>t=>{for(let n of e){let e=n(t);if(e.disabled)return e}return{disabled:!1}},pl=(...e)=>t=>{let n={disabled:!0,message:`No condition matched`};for(let r of e){let e=r(t);if(!e.disabled)return e;n=e}return n},ml=[`google-low`,`openai-high`,`openai-medium`,`anthropic-high`,`anthropic-low`],hl={"google-low":{label:`Gemini 3.7 Flash`,provider:`gemini`,rateLimitOperation:`gemini_35_flash`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"openai-high":{label:`GPT 5.6 Sol`,provider:`openai`,rateLimitOperation:`openai_gpt-5`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"openai-medium":{label:`GPT 5.6 Terra`,provider:`openai`,rateLimitOperation:`openai_gpt-5-6-terra`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"anthropic-high":{label:`Claude Opus 5`,provider:`anthropic`,rateLimitOperation:`anthropic_opus`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"anthropic-low":{label:`Claude Sonnet 5`,provider:`anthropic`,rateLimitOperation:`anthropic_sonnet`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`}},gl=.03,_l=.3,vl=100,yl=100,bl={"google-low":{inputPer1M:.75,outputPer1M:3.75,cachedInputPer1M:.075},"openai-high":{inputPer1M:5,outputPer1M:30,cachedInputPer1M:.5,cachedWritePer1M:6.25},"openai-medium":{inputPer1M:2,outputPer1M:12,cachedInputPer1M:.2,cachedWritePer1M:2.5},"anthropic-high":{inputPer1M:5,outputPer1M:25,cachedInputPer1M:.5,cachedWritePer1M:6.25},"anthropic-low":{inputPer1M:2,outputPer1M:10,cachedInputPer1M:.2,cachedWritePer1M:2.5}},xl=`openai-medium`,Sl=`openai-medium`,Cl=`openai-medium`;function wl(e){let t=hl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return[t.provider]}function Tl(e){let t=hl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return[{provider:t.provider,rateLimitRatio:t.rateLimitRatio,rateLimitOperation:t.rateLimitOperation,allowManagedConnection:t.allowManagedConnection}]}function El(){let e=new Set;for(let t of ml)e.add(hl[t].provider);return[...e]}function Dl(e){return Object.keys(e).some(e=>ml.some(t=>e.endsWith(`-in-${t}`)||e.endsWith(`-out-${t}`)))}function Ol(e,t){return e/1e6*(1+_l)/gl*t}function kl(e){let t=bl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return{in:Ol(t.inputPer1M,100),out:Ol(t.outputPer1M,100)}}function Al(e,t){let n=Math.round(_l*100);return`Billed per 100 ${e} tokens at ${Number(t.toPrecision(4))} credits/block (managed keys include a ${n}% margin over provider cost).`}function jl(e){let t={};for(let n of ml){let r=hl[n],i=kl(n);t[`${e}-in-${n}`]={credits:{default:i.in},allowManagedConnection:!0,provider:r.provider,mode:r.billingMode,note:Al(`input`,i.in)},t[`${e}-out-${n}`]={credits:{default:i.out},allowManagedConnection:!0,provider:r.provider,mode:r.billingMode,note:Al(`output`,i.out)}}return t}function Ml(e,t){return{input:`${t}-in-${e}`,output:`${t}-out-${e}`}}function Nl(e,t){let n=Ml(t.model,t.prefix);return[{billableOperation:n.input,quantity:e.count*Math.ceil(t.inputTokens/100)},{billableOperation:n.output,quantity:e.count*Math.ceil(t.outputTokens/100)}]}function Pl(e){let t=bl[e];return!t?.cachedInputPer1M||t.inputPer1M<=0?1:t.cachedInputPer1M/t.inputPer1M}function Fl(e){let t=bl[e];return!t?.cachedWritePer1M||t.inputPer1M<=0?1:t.cachedWritePer1M/t.inputPer1M}function Il(e,t){let n=Math.max(0,e.inputTokens);if(!t)return n;let r=Pl(t),i=Fl(t);if(r===1&&i===1)return n;let a=Math.max(0,e.inputTokenDetails?.cacheReadTokens??0),o=Math.max(0,e.inputTokenDetails?.cacheWriteTokens??0);if(a===0&&o===0)return n;let s=e.inputTokenDetails?.noCacheTokens??Math.max(0,n-a-o);return Math.round(s+o*i+a*r)}var Ll=class{carriedInput=0;carriedOutput=0;addUsage(e,t){this.carriedInput+=Il(e,t),this.carriedOutput+=Math.max(0,e.outputTokens)}drainBlocks(){let e=Math.floor(this.carriedInput/100),t=Math.floor(this.carriedOutput/100);return this.carriedInput-=e*100,this.carriedOutput-=t*100,{inBlocks:e,outBlocks:t}}flush(){let e=+(this.carriedInput>0),t=+(this.carriedOutput>0);return this.carriedInput=0,this.carriedOutput=0,{inBlocks:e,outBlocks:t}}};function Rl(e){if(!e?.requires)return;let t=[];e.requires.connection&&t.push(v(e.requires.connection));for(let n of e.requires.fields??[])t.push(dl(e=>n.split(`.`).reduce((e,t)=>e==null?e:e[t],e),`Set ${n} first`));if(t.length!==0)return t.length===1?t[0]:fl(...t)}function zl(e,t,n){let i={exampleValue:null,jsonSchema:null},a=t.fieldAnnotations.annotations[e];if(a?.json_metadata?.example_value&&(i.exampleValue=a.json_metadata.example_value||null),a?.json_metadata?.schema&&(i.jsonSchema=a.json_metadata.schema||null),i.exampleValue&&i.jsonSchema||!t.resolvedFieldNames[e])return i;let o=bs(e,n,t),s=_s(o.fieldName)?_(o.fieldName):null;return s?.jsonMeta?{jsonSchema:s.jsonMeta.zodSchema?r.toJSONSchema(s.jsonMeta.zodSchema):null,exampleValue:s.jsonMeta.exampleValue||null}:i}const Bl=r.registry();{let e=Bl._map,t=Bl.get.bind(Bl);Bl.get=n=>{let r=n;for(;r;){let t=e.get(r);if(typeof t==`function`)return t;r=r?._zod?.parent}return t(n)}}const y=Bl,Vl=Bl,Hl=Bl,Ul=r.registry(),Wl=e=>e,Gl={text_input:r.coerce.string(),textarea_input:r.string(),prompt_input:r.object({template:r.string(),json_schemas:r.record(r.string(),r.record(r.string(),r.unknown()))}),template_input:r.string(),tagged_text_input:r.coerce.string(),boolean_input:r.boolean(),nullable_boolean_input:r.boolean().nullable(),select_input:r.string(),multi_select_input:r.array(r.string()),async_multi_select_input:r.array(r.string()),int_input:r.coerce.number().int(),number_input:r.coerce.number(),min_max_int_input:r.object({min:r.number().nullable().default(null),max:r.number().nullable().default(null)}),include_exclude_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),include_exclude_select_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),async_include_exclude_select_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),exact_range_input:r.record(r.string(),r.number().nullable()),range_input:r.object({from:r.number().nullable(),to:r.number().nullable()}),date_range_input:r.record(r.string(),r.string()),multi_create_input:r.array(r.string()),single_create_input:r.string(),property_list_input:r.array(r.object({property:r.string().min(1)})),ordered_multi_create_input:r.array(r.string()),tagged_ordered_multi_create_input:r.array(r.string()),loose_object_input:r.record(r.string(),r.string()),connector_input:r.object({connections:r.array(r.object({type:r.string(),connection:r.string()}))}).nullable(),providers_input:r.array(r.object({provider:r.string()})),json_extraction_input:r.record(r.string(),r.unknown()),pipes_run_if_input:r.record(r.string(),r.unknown()).nullable(),condition_block_input:r.record(r.string(),r.unknown()).nullable(),fields_select_input:r.array(r.object({field_name:r.string()})),typed_fields_select_input:r.array(r.object({field_name:r.string(),type:r.enum(Es),format:r.enum(Js).nullable().optional(),alias:r.string().optional()})),field_select_input:r.object({field_name:r.string()}),output_field_input:r.object({alias:r.string(),enabled:r.boolean()}),json_schema_input:r.record(r.string(),r.unknown()),cursor_pagination_metadata:r.object({limit:r.number()}),context_select_input:r.union([r.string(),r.array(r.string())]),search_payload_input:r.looseObject({search_id:r.string()})},Kl=(e,t,n)=>{let r=[t.description||n,t.guide].filter(Boolean).join(` `);return r?e.describe(r):e.check(()=>{})},ql=(e,t)=>{let n=Gl.multi_create_input;return e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]),t.add(n,{type:`multi_create_input`,...e}),n},Jl=(e,t)=>{let n=Gl.single_create_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern)));let r=Kl(n,e);return t.add(r,{type:`single_create_input`,...e}),r},Yl=(e,t)=>{let n=Gl.property_list_input;e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]);let r=Kl(n,e),i=e.enabledIf??Rl(e.optionsDef);return t.add(r,{type:`property_list_input`,...e,enabledIf:i}),r},Xl=(e,t)=>{let n=Gl.ordered_multi_create_input;return e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]),t.add(n,{type:`ordered_multi_create_input`,...e}),n},Zl=/^\s*\{\{\s*[a-zA-Z_][a-zA-Z0-9_.]*(?:\s*\|\s*[^}]+)?\s*\}\}\s*$/,Ql=/\{\{|\{%/,$l=(e,t)=>{let n=Gl.tagged_ordered_multi_create_input;e.maxItems&&(n=n.max(e.maxItems)),n=n.check(e=>{let t=e;(t.value??[]).forEach((e,n)=>{let r=Zl.test(e),i=Ql.test(e);!r&&i&&t.issues.push({code:`custom`,input:e,path:[n],message:`Each entry must be either plain text or a single field reference โ not mixed.`})})}),n=e.minItems?n.min(e.minItems):n.default([]),n=Kl(n,e);let r={type:`tagged_ordered_multi_create_input`,...e};if(t===y){let i=t=>{let n=t.validationContext,i=n?Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).filter(([t,n])=>!e.expectedTagType||n.type===e.expectedTagType).map(([e,t])=>({...t,resolvedName:e})):[];return{...r,inputFields:i}};return i.staticMeta={...r,inputFields:[]},t.add(n,i),n}return t.add(n,r),n},eu=(e,t)=>{let n=Gl.loose_object_input;n=n.check(t=>{let n=t,r=Object.entries(n.value??{});e.minKeys!=null&&r.length<e.minKeys&&n.issues.push({code:`custom`,input:n.value,message:`Add at least ${e.minKeys} ${e.keyLabel?.toLowerCase()??`entr`}${e.keyLabel?`s`:`ies`}.`}),e.maxKeys!=null&&r.length>e.maxKeys&&n.issues.push({code:`custom`,input:n.value,message:`Use at most ${e.maxKeys} ${e.keyLabel?.toLowerCase()??`entr`}${e.keyLabel?`s`:`ies`}.`}),r.forEach(([e,t])=>{Mu({value:t,issues:n.issues},!1,[e])})}),n=n.default({}),n=Kl(n,e);let r={type:`loose_object_input`,...e},i=e=>{let t=e.validationContext,n=t?Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e.hash).map(([e,t])=>({...t,resolvedName:e})):[];return{...r,inputFields:n}};return i.staticMeta={...r,inputFields:[]},t.add(n,i),n},tu=(e,t)=>{let n=e.maxItems||200,r=Kl(Gl.include_exclude_input.check(e=>{e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`})}),e);return t.add(r,{type:`include_exclude_input`,...e}),r},nu=()=>{let e=uc;return y.add(e,e=>{let t=e.validationContext;return{label:``,description:``,type:`json_extraction_input`,fields:Object.entries(t.fieldDefinitions).filter(([e,t])=>e.toLowerCase()!==`id`&&t.type===`json`).map(([e,n])=>{let{jsonSchema:r,exampleValue:i}=zl(e,t,n)||{};return{fieldName:e,fieldLabel:n.label,schema:r||null,exampleValue:i||null}}),path:`config.json_extraction`,groupPath:`config.json_extraction`,sectionKey:`general`}}),e},ru=(e,t)=>{let n=r.array(r.object({provider:r.enum(e.availableProviders)})).max(e.maxItems||99).min(1).default(e.defaultProviders),i=e.availableProviders.filter(t=>!e.deprecatedProviders?.includes(t)).map(t=>{let n=e.providerCredits?.[t];return{value:t,label:$t[t].label,widgets:{provider_logo:{provider:t},...typeof n==`number`?{pricing:{credits:n}}:{}}}});return t.add(n,{label:`Provider sequence`,description:``,path:`config.providers`,groupPath:`config.providers`,type:`providers_input`,options:i,defaultProviders:e.defaultProviders,maxItems:e.maxItems,sectionKey:e.sectionKey}),n},iu=(e,t)=>{let n=e.maxItems||200,r=e.optionsDef&&typeof e.optionsDef.options!=`function`?new Set(e.optionsDef.options.map(e=>e.value)):null,i=r?[...r].slice(0,8).join(`, `)+(r.size>8?`, โฆ`:``):``,a=Kl(Gl.include_exclude_select_input.check(e=>{if(e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`}),r)for(let t of[`include`,`exclude`])e.value[t].forEach((n,a)=>{r.has(n)||e.issues.push({code:`custom`,input:n,path:[t,a],message:`Invalid option value "${n}". Valid values include: ${i} โ resolve labels to values via autocomplete`})})}),e);return t.add(a,{type:`include_exclude_select_input`,...e}),a},au=(e,t)=>{let n=Kl(Gl.exact_range_input.check(t=>{e.min===void 0&&e.max===void 0||Object.values(t.value).filter(e=>e!==null).some(t=>e.min!=null&&t<e.min||e.max!=null&&t>e.max)&&t.issues.push({code:`custom`,input:t.value,message:`Values must be between ${e.min??`any`} and ${e.max??`any`}`})}),e);return t.add(n,{type:`exact_range_input`,...e}),n},ou=(e,t)=>{let n=r.object({from:r.number().optional().nullable(),to:r.number().optional().nullable()}).default({from:null,to:null}),i=n;(e.min!==void 0||e.max!==void 0)&&(i=n.check(t=>{Object.values(t.value).filter(e=>e!=null).every(t=>(e?.min==null||t>=e.min)&&(e.max==null||t<=e.max))||t.issues.push({code:`custom`,input:t.value,message:`Values must be between ${e.min??`any`} and ${e.max??`any`}`}),t.value.from&&t.value.to&&t.value.from>t.value.to&&t.issues.push({code:`custom`,input:t.value,message:`'From' value must be smaller than 'to' value.`})}));let a=Kl(i,e);return t.add(a,{type:`range_input`,...e}),a},su=(e,t)=>{let n=Kl(Gl.date_range_input.check(e=>{let t=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;for(let[n,r]of Object.entries(e.value))r&&!t.test(r)&&e.issues.push({code:`custom`,input:r,path:[n],message:`Must be an ISO datetime string`})}),e);return t.add(n,{type:`date_range_input`,...e}),n},cu=(e,t)=>{let n=Kl(Gl.boolean_input.default(e.defaultValue),e);return t.add(n,{...e,required:!1,type:`boolean_input`}),n},lu=(e,t)=>{let n=Kl(Gl.nullable_boolean_input.default(e.defaultValue),e);return t.add(n,{...e,required:!1,type:`nullable_boolean_input`,defaultValue:e.defaultValue}),n},uu=(e,t)=>{let n=Gl.text_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern)));let r=Kl(n,e);return t.add(r,{type:`text_input`,...e}),r},du=(e,t)=>{let n=Gl.textarea_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength));let r=Kl(n,e);return t.add(r,{type:`textarea_input`,...e}),r},fu=(e,t,n=`pipe_io`)=>{let i=r.object({alias:r.string().default(``).describe(`Rename this output field. Leave empty to use default name.`),enabled:r.boolean().default(!0).describe(`Whether to include this field in the output.`)}).describe(`Output field '${e.fieldName}'`);return t.add(i,{type:`output_field_input`,label:`Rename *${e.fieldName}*`,placeholder:e.fieldName,path:`config.output_fields.${e.fieldName}`,description:void 0,groupPath:`config.output_fields`,sectionKey:n}),i.default({alias:``,enabled:!0})},pu=(e,t)=>r.unknown().check(e=>{t(e.value)&&e.issues.push({code:`custom`,input:e.value,message:`Required`})}).pipe(e),mu=(e,t)=>{let n=Kl(pu(Gl.int_input.check(t=>{e.min!=null&&t.value<e.min&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at least ${e.min}`}),e.max!=null&&t.value>e.max&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at most ${e.max}`})}),e=>e==null),e);return t.add(n,{...e,type:`int_input`}),n},hu=(e,t)=>{let n=Kl(pu(Gl.number_input.check(t=>{e.min!=null&&t.value<e.min&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at least ${e.min}`}),e.max!=null&&t.value>e.max&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at most ${e.max}`})}),e=>e===void 0),e);return t.add(n,{...e,type:`number_input`}),n},gu=(e,t)=>{let n=Gl.json_schema_input;return n.check(e=>{nl(e.value)||e.issues.push({code:`custom`,input:e.value,message:`JSON schema is invalid. Check your input.`})}),e.allowEmpty||(n=n.check(e=>{rl(e.value)&&e.issues.push({code:`custom`,message:`JSON Schema must define a meaningful value. Can not be an empty object or array.`,input:e.value})})),t.add(n,{...e,type:`json_schema_input`}),n},_u=(e,t)=>{let n=e.options.map(e=>e.value),r=new Set([...n,``]),i=Gl.select_input.check(t=>{if(t.value===``){e.required&&t.issues.push({code:`custom`,input:t.value,message:`Required`});return}r.has(t.value)||t.issues.push({code:`custom`,input:t.value,message:`Must be one of: ${[...r].filter(e=>e).join(`, `)}`})}),a=Kl(e.defaultValue?i.default(e.defaultValue):i,e);return t.add(a,{type:`select_input`,...e}),a},vu=(e,t,n)=>{let r=Kl(Gl.search_payload_input.check(e=>{if(!e.value?.search_id){e.issues.push({code:`custom`,input:e.value,message:`Required`});return}let t=n?.safeParse(e.value);if(t&&!t.success)for(let n of t.error.issues)e.issues.push({code:`custom`,input:e.value,message:n.message,path:n.path})}),e);return t.add(r,{...e,type:`search_payload_input`,required:!0}),r},yu=({billableOperations:e,...t},n)=>{let i=r.enum(ml).default(t.defaultValue||`google-low`);return n.add(i,{type:`select_input`,options:ml.map(t=>{let n=Object.keys(e).find(e=>e.endsWith(`-in-${t}`)),r=Object.keys(e).find(e=>e.endsWith(`-out-${t}`)),i=n?e[n]:void 0,a=r?e[r]:void 0;if(!i||!a)throw Error(`Unable to find token billing info for model ${t}`);return{label:hl[t].label,value:t,widgets:{logo:{url:$t[hl[t].provider].logoUrl},token_pricing:{inputPerBlock:i.credits.default,outputPerBlock:a.credits.default,blockSize:100}}}}),required:!0,description:``,label:`AI Models`,...t}),i},bu=(e,t)=>{let n=e.options.map(e=>e.value),i=new Set(n),a=r.array(r.enum(Array.from(i))).check(t=>{e.required&&t.value.length===0&&t.issues.push({code:`custom`,input:t.value,message:`Required`});let r=new Set;t.value.forEach((e,a)=>{i.has(e)?r.has(e)?t.issues.push({code:`custom`,input:e,path:[a],message:`Duplicate option: ${e}`}):r.add(e):t.issues.push({code:`custom`,input:e,path:[a],message:`Must be one of: ${n.join(`, `)}`})})}),o=e.maxItems?a.max(e.maxItems):a;return t.add(o,{type:`multi_select_input`,...e}),o},xu=(e,t)=>{let n=Gl.context_select_input.check(t=>{e.required&&(t.value===``||Array.isArray(t.value)&&t.value.length===0)&&t.issues.push({code:`custom`,input:t.value,message:`Required`})}),r=Kl(e.defaultValue?n.default(e.defaultValue):n,e),i=e.enabledIf??Rl(e.optionsDef);return t.add(r,{type:`context_select_input`,...e,enabledIf:i,options:[]}),r},Su=(e,t)=>{let n=Gl.min_max_int_input.check(t=>{for(let n of[`min`,`max`]){let r=t.value[n];if(r!=null){if(!Number.isInteger(r)){t.issues.push({code:`custom`,input:r,path:[n],message:`Must be an integer`});continue}(r<e.min||r>e.max)&&t.issues.push({code:`custom`,input:r,path:[n],message:`Must be between ${e.min} and ${e.max}`})}}});return t.add(n,{type:`min_max_int_input`,...e}),n},Cu=(e,t)=>{let n=Gl.async_multi_select_input.check(t=>{e.required&&t.value.length===0&&t.issues.push({code:`custom`,input:t.value,message:`Required`})});return e.maxItems&&(n=n.max(e.maxItems)),t.add(n,{type:`async_multi_select_input`,...e}),n},wu=(e,t)=>{let n=e.maxItems||200,r=Gl.async_include_exclude_select_input.check(e=>{e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`})});return t.add(r,{type:`async_include_exclude_select_input`,...e}),r},b=()=>{let e=Ec.nullish();return y.add(e,e=>{let t=e.validationContext;return{label:``,description:``,type:`pipes_run_if_input`,groupPath:`run_if`,path:`run_if`,sectionKey:`pipe_io`,fields:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),e},Tu=e=>{let t=wc.nullish();return y.add(t,t=>{let n=t.validationContext;return{type:`condition_block_input`,...e,fields:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),t},Eu=e=>{let t=wc.nullish();return Hl.add(t,t=>{let n=t.validationContext;return{type:`condition_block_input`,...e,fields:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),t},Du=e=>{let{required:t=!0,...n}=e,r=Kl(Tc.nullable().check(e=>{let n=e;if(n.value===null){t&&n.issues.push({code:`custom`,input:n.value,message:`Add at least one condition.`});return}(n.value?.conditions??[]).forEach((e,t)=>{typeof e.value==`string`&&Mu({value:e.value,issues:n.issues},!1,[`conditions`,t,`value`])})}),n,"Condition block over the target sheet's columns. `field_name` is a LITERAL column name of the looked-up sheet (never templated); string `value`s may contain `{{ field }}` / `{{ SECRETS.KEY }}` / `{{ CONSTANTS.KEY }}` Liquid references resolved per row."+(t?``:" `null` means no filtering.")),i=n.optionsDef?{...n.optionsDef,enabledIf:n.optionsDef.enabledIf??Rl(n.optionsDef)}:void 0,a={type:`condition_block_input`,fields:[],fieldNameMode:`text`,properties:[`value`],...n,optionsDef:i,options:[]},o=e=>{let t=e.validationContext;return{...a,inputFields:Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e.hash).map(([e,t])=>({...t,resolvedName:e}))}};return o.staticMeta={...a,inputFields:[]},y.add(r,o),t?r:r.default(null)};function Ou(e,t){if(!t)return e;let n={...e};for(let[r,i]of Object.entries(t))n[r]=i===null?null:{...e[r]??{},...i};return n}function ku({fieldMetadata:e,store:t}){let n=e;if(e.type===`context_select_input`||e.type===`tagged_text_input`||(e.type===`condition_block_input`||e.type===`field_select_input`||e.type===`fields_select_input`||e.type===`typed_fields_select_input`||e.type===`property_list_input`)&&n.optionsDef){t.field_options??={};let r=t.field_options[e.path]?.options||[],i=n.optionsDef?.widgets;e.options=i?r.map(e=>({...e,widgets:{...i,...e.widgets??{}}})):r}return e}const Au=({schema:e,extractFromSchema:t,store:n,formResolvers:i,sectionMap:a,groupMap:o,pathMap:s})=>{let c={};function l(e){let t=e?._zod?.def?.type;return!(t===`optional`||t===`nullable`||t===`default`)}function u(e,d){let f=t(e),p=f?.required,m=f&&p===void 0&&d!==void 0?{...f,required:d}:f;if(m){let{sectionKey:e,groupPath:t,path:r}=m,l=a?.[e],u=o?.[t],d=s?.[r];if(!(l===null||u===null||d===null)){let r=d?{...m,label:d.label??m.label,description:d.description??m.description}:m;c[e]??={type:`section`,groups:[],metadata:{type:`form_section`,path:l?.path??e,label:l?.label,description:l?.description}};let a=c[e];if(!a)throw Error(`Section not defined`);let o=a.groups.find(e=>e.groupPath===t);if(o){let e=ku({fieldMetadata:r,store:n,formResolvers:i});e&&o.fields.push(e)}else{let e=ku({fieldMetadata:r,store:n,formResolvers:i});e&&a.groups.push({groupPath:t,fields:[e],type:`group`,label:u?.label,defaultExpand:!!u?.defaultExpand,description:u?.description,iconKey:u?.iconKey,order:u?.order})}}}if(typeof e==`object`&&`unwrap`in e&&typeof e.unwrap==`function`&&u(e.unwrap(),d),e instanceof r.ZodObject)for(let t of Object.values(e.shape))u(t,l(t))}u(e);for(let e of Object.values(c))e.groups=e.groups.filter(e=>e.fields.length!==0),e.groups.sort((e,t)=>(e.order??99)-(t.order??99));return Object.entries(c).filter(([,e])=>e.groups.length!==0).sort(([e],[t])=>(a?.[e]?.order??99)-(a?.[t]?.order??99)).map(([,e])=>e)};function ju(e,t,n,r){let i=t.filter(e=>e.format&&!Js.includes(e.format));i.length!==0&&e.issues.push({code:`custom`,input:n,path:r,message:`Unknown format on ${i.map(e=>`${e.name} ("${e.format}")`).join(`, `)}. Allowed: ${Js.join(`, `)}.`})}function Mu(e,t,n=[]){let r=e.value;if(!(typeof r!=`string`||!r))try{let i=Vc(r);!t&&i.outputs.length>0&&e.issues.push({code:`custom`,input:r,path:n,message:`{% output %} tags are not allowed in this field.`}),t&&i.outputs.length===0&&e.issues.push({code:`custom`,input:r,path:n,message:`At least one {% output %} tag is required, e.g. {% output result, type: "string", description: "..." %}`}),ju(e,i.outputs,r,n)}catch(t){e.issues.push({code:`custom`,input:r,path:n,message:t instanceof Error?t.message:String(t)})}}function Nu(e,t=[]){let n=e.value;if(typeof n!=`string`||!n)return;let r;try{r=Vc(n)}catch(r){e.issues.push({code:`custom`,input:n,path:t,message:r instanceof Error?r.message:String(r)});return}r.outputs.length===0&&e.issues.push({code:`custom`,input:n,path:t,message:`At least one {% output %} tag is required โ they define the search's columns, e.g. {% output post_url, type: "string", format: "url", description: "Canonical URL" %}`});let i=Object.keys(r.inputs);i.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`A search has no input row to read from, so field references are not supported here: ${i.map(e=>`{{ ${e} }}`).join(`, `)}. Write the value into the text, or use a dedicated config field (e.g. the domain allowlist).`});for(let[i,a]of[[`SECRETS`,r.secrets],[`CONSTANTS`,r.constants]])a.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`${i} are not resolved for searches: ${a.map(e=>`{{ ${i}.${e} }}`).join(`, `)}. Put the literal value in the template instead.`});ju(e,r.outputs,n,t);let a=r.outputs.filter(e=>e.type===`string`&&!e.format&&Pu.test(e.name));a.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`These outputs look like they need a format but declare none: ${a.map(e=>e.name).join(`, `)}. Add it to the tag โ e.g. format: "url" for a link, "date" for YYYY-MM-DD, "email" โ or format: "text" if the value genuinely is plain text.`})}const Pu=/_(url|at|date|email)$/,Fu=e=>{let t=(e.supportedTags??[]).includes(`output`),n=r.object({template:Kl(r.string().min(10).check(e=>Mu(e,t,[])),e,'Liquid prompt with `{{ field }}` input refs, `{{ field | default: "" }}` for optional refs, `{{ SECRETS.KEY }}` for secrets, `{{ CONSTANTS.KEY }}` for plaintext constants, and `{% output name, type: "string", description: "..." %}` to declare model outputs. Add `format` to an output whenever one fits (url, website_url, profile_url, email, date, datetime, phone, currency, percent, markdown, int, decimal) โ the format is what makes the column render as a link, a date or money instead of raw text, so a URL output without format: "url" lands as a plain string. Supports `{% if %}` / `{% for %}` control flow. Example: "Summarize {{ name }}. {% output summary, type: \\"string\\", description: \\"One-line summary\\" %} {% output source_url, type: \\"string\\", format: \\"url\\", description: \\"Page the summary came from\\" %}"'),json_schemas:r.record(r.string().min(1,`Schema name cannot be empty`),r.record(r.string(),r.any())).optional().describe(`JSON schemas for output fields with type="json". Keys are referenced via schema="<name>" in output tags.`)});return y.add(n,t=>{let n=t.validationContext;return{type:`prompt_input`,inputFields:Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).map(([e,t])=>({...t,resolvedName:e})),...e}}),n},Iu=e=>{let t=`Liquid template with \`{{ field }}\` input refs, \`{{ field | default: "" }}\` for optional refs, \`{{ SECRETS.KEY }}\` for secrets, \`{{ CONSTANTS.KEY }}\` for plaintext constants, and \`{% if %}\` / \`{% for %}\` control flow. Filters are hard-whitelisted โ ONLY: ${Oc.join(`, `)}; anything else (split, slice, โฆ) fails validation. Example: "Write to {{ name }} about {{ topic | default: \\"the project\\" }}."`,n=r.string();e.required&&(n=n.min(1)),e.maxLength&&(n=n.max(e.maxLength));let i=Kl(n.check(e=>Mu(e,!1,[])),e,t);return y.add(i,t=>{let n=t.validationContext;return{type:`template_input`,inputFields:Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).map(([e,t])=>({...t,resolvedName:e})),rows:e.rows||10,...e}}),i},x=e=>{let t=`${e.multiline?`Multi-line`:`Single-line`} ${e.expectedTagType} value, optionally containing \`{{ field }}\` Liquid input refs (use \`| default: ""\` for optional refs), \`{{ SECRETS.KEY }}\` for encrypted secrets, and \`{{ CONSTANTS.KEY }}\` for plaintext constants.`,n=r.coerce.string();e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern))),n=n.check(e=>Mu(e,!1,[])),n=Kl(n,e,t);let i=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,a={type:`tagged_text_input`,...e,optionsDef:i,options:[]},o=t=>{let n=t.validationContext,r=Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).filter(([t,n])=>n.type===e.expectedTagType).map(([e,t])=>({...t,resolvedName:e}));return{...a,inputFields:r}};return o.staticMeta={...a,inputFields:[]},y.add(n,o),n};function Lu(e,t){Bl.add(e,({userConnections:e,entry:n,kind:r})=>{let i=r===`search`||r===`stream`?n.allowsUserConnection?[n.provider]:[]:n.allowedUserConnectionProviders??[],a=new Set(i),o=e.filter(e=>a.has(e.provider));return{label:t===`required`?`Custom connection`:``,description:``,required:t===`required`,groupPath:`connector`,path:`connector`,connectorMode:t,type:`connector_input`,sectionKey:`pipe_io`,supportsUserConnections:a.size>0,filteredConnections:o.map(e=>({provider:e.provider,connection:el({id:e.public_id,provider:e.provider}),is_default:e.is_default??!1,ownership_level:e.ownership_level}))}})}const S=()=>{let e=_c;return Lu(e,`required`),e},C=()=>{let e=gc;return Lu(e,`optional`),e},Ru=()=>{let e=vc;return Lu(e,`disabled`),e},zu=()=>{let e=_c;return Lu(e,`required`),e},Bu=()=>{let e=gc;return Lu(e,`optional`),e},Vu=()=>{let e=vc;return Lu(e,`disabled`),e},Hu=()=>{let e=_c;return Lu(e,`required`),e},Uu=()=>{let e=gc;return Lu(e,`optional`),e},w=()=>{let e=vc;return Lu(e,`disabled`),e};function Wu(e,t){return Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e&&t.toLowerCase()!==`id`).map(([e,t])=>({label:e,value:e,type:t.type,format:t.format}))}const T=e=>{let t=r.object({alias:r.string().describe(`Override field name mapping. Leave empty to use default.`)});return y.add(t,t=>{let n=t.validationContext;return{type:`select_input`,required:!1,sectionKey:`pipe_io`,defaultValue:void 0,placeholder:e.fieldName,options:Wu(t.hash??``,n),path:`config.input_fields.${e.fieldName}.alias`,label:`Assign *${e.fieldName}* to:`,description:``,groupPath:`config.input_fields`,multiple:!1}}),t.default({alias:``})},E=e=>ru(e,y),Gu=(e,t,n=y)=>{let r=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,i={type:`fields_select_input`,...e,optionsDef:r,options:[]},a=e=>{if(r)return{...i};let t=e.validationContext;return{...i,options:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({value:e,label:e,widgets:{field_type:{type:t.type}}}))}};a.staticMeta=i,n.add(t,a)},Ku=e=>{let t=Gl.fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu(e,t),t},qu=r.array(r.object({field_name:r.string(),alias:r.string().optional()})),Ju=e=>{let t=qu.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu({...e,withAlias:!0},t),t},Yu=e=>{let t=qu.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu({...e,withAlias:!0},t,Hl),t},Xu=e=>{let t=Gl.typed_fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});t=e.minItems?t.min(e.minItems):t.default([]);let n=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,r={type:`typed_fields_select_input`,...e,optionsDef:n,options:[]},i=e=>{if(n)return{...r};let t=e.validationContext;return{...r,options:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>{let n=typeof t.type==`function`?`unknown`:t.type;return{value:e,label:e,data:{type:String(n),...t.format?{format:String(t.format)}:{}},widgets:{field_type:{type:t.type}}}})}};return i.staticMeta=r,y.add(t,i),t},Zu=e=>{let t=Gl.field_select_input.check(t=>{e.required&&t.value.field_name.length<1&&t.issues.push({code:`custom`,input:t.value,message:`Select a field`})});e.required||(t=t.default({field_name:``})),t=Kl(t,e,"Reference to a single sheet column by name (`{ field_name }`).");let n=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,r={type:`field_select_input`,...e,optionsDef:n,options:[]},i=e=>{if(n)return{...r};let t=e.validationContext;return{...r,options:Object.entries(t.fieldDefinitions).filter(([t,n])=>t.toLowerCase()!==`id`&&n.added_by.config_hash!==e.hash).map(([e,t])=>({value:e,label:e,widgets:{field_type:{type:t.type}}}))}};return i.staticMeta=r,y.add(t,i),t},Qu=e=>{let t=Gl.fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Hl.add(t,t=>{let n=t.validationContext;return{type:`fields_select_input`,options:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:e,type:t.type})).map(e=>({value:e.fieldName,label:e.fieldLabel,widgets:{field_type:{type:e.type}}})),...e}}),t},$u=(e,t)=>{let n=t===`selection`?jt:t===`sheet`?Mt:Pt,i={label:`All rows`,value:{type:`all`}},a={label:`Specific rows by ID`,value:{type:`rows`,record_ids:[]}},o=t===`selection`?[a]:t===`sheet`?[i]:[i,a,{label:`Window of 10 rows`,value:{type:`window`,count:10}}],s=r.preprocess(e=>{if(typeof e!=`string`)return e;let t=e.trim();if(t===``)return;let n=al(t);return n===void 0?e:n},n).optional();return Hl.add(s,{type:`textarea_input`,rows:3,language:`json`,quickOptions:o,...e}),s},ed=e=>tu(e,y),td=e=>ql(e,y),nd=e=>Yl(e,y),rd=e=>Xl(e,y),id=e=>$l(e,y),ad=e=>eu(e,y),od=e=>iu(e,y),sd=e=>wu(e,y),cd=e=>au(e,y),ld=e=>su(e,y),ud=e=>cu(e,y),D=e=>fu(e,y),dd=e=>{let{groupPath:t,sectionKey:n=`pipe_io`,defaultName:r,nameInfo:i}=e;return{destination_field_name:fd({label:`Field name`,description:`Destination field name`,info:i??`Name of the field written to the destination sheet.`,placeholder:r,inputType:`text`,path:`config.destination_field_name`,groupPath:t,sectionKey:n}).nullable().default(``),destination_field_type:md({label:`Type`,info:`Field data type. Leave unset to infer it from the data.`,path:`config.destination_field_type`,groupPath:t,sectionKey:n,required:!1,options:Es.filter(e=>e!==`unknown`).map(e=>({value:e,label:e}))}).default(``),destination_field_format:md({label:`Format`,info:`Optional display format for the field.`,path:`config.destination_field_format`,groupPath:t,sectionKey:n,required:!1,options:Js.map(e=>({value:e,label:e}))}).default(``),destination_field_label:fd({label:`Label`,description:`Destination field label`,info:`Human-friendly column header. Defaults to the field name.`,inputType:`text`,path:`config.destination_field_label`,groupPath:t,sectionKey:n}).nullable().default(``)}},fd=e=>uu(e,y),pd=e=>du(e,y),md=e=>_u(e,y),hd=e=>yu(e,y),gd=e=>bu(e,y),_d=e=>mu(e,y),vd=e=>hu(e,y),yd=e=>gu(e,y),bd=e=>xu(e,y),xd=e=>{let{required:t=!1,...n}=e,r=Kl(Tc.nullable().check(e=>{let n=e;n.value===null&&t&&n.issues.push({code:`custom`,input:n.value,message:`Add at least one condition.`})}),n);return Vl.add(r,{type:`condition_block_input`,fields:[],fieldNameMode:`text`,properties:[`value`],...n}),t?r:r.default(null)},Sd=e=>{let t=r.object({template:Kl(r.string().min(10).check(e=>Nu(e,[])),e,'Liquid research brief. Plain text plus `{% output name, type: "string", description: "..." %}` tags that DECLARE the columns each result row will have; `type` may be string, number, boolean or json (with `schema: "<key>"` referencing `json_schemas`). Add `format` whenever one fits (url, website_url, profile_url, email, date, datetime, phone, currency, percent, markdown, int, decimal) โ it is what makes the column render as a link, a date or money instead of raw text. Supports `{% if %}` / `{% for %}`. Field references (`{{ name }}`), SECRETS and CONSTANTS are NOT supported โ a search has no input row. Example: "Find each product the company sells. {% output product_name, type: \\"string\\", description: \\"Official name\\" %} {% output product_url, type: \\"string\\", format: \\"url\\", description: \\"Product page\\" %}"'),json_schemas:r.record(r.string().min(1,`Schema name cannot be empty`),r.record(r.string(),r.any())).optional().describe(`JSON schemas for output fields with type="json". Keys are referenced via schema="<name>" in output tags.`)});return Vl.add(t,{type:`prompt_input`,inputFields:[],...e}),t},Cd=e=>yu(e,Vl),O=e=>ql(e,Vl),wd=e=>Yl(e,Vl),Td=e=>Xl(e,Vl),Ed=e=>Su(e,Vl),k=e=>tu(e,Vl),Dd=e=>iu(e,Vl),Od=e=>au(e,Vl),kd=e=>ou(e,Vl),Ad=e=>su(e,Vl),jd=e=>cu(e,Vl),Md=e=>lu(e,Vl),A=e=>fu(e,Vl,`pipe_io`),j=e=>uu(e,Vl),Nd=e=>du(e,Vl),Pd=e=>_u(e,Vl),Fd=e=>xu(e,Vl),M=e=>bu(e,Vl),Id=e=>Cu(e,Vl),N=e=>wu(e,Vl),P=e=>mu(e,Vl),Ld=e=>hu(e,Vl),Rd=e=>uu(e,Bl),zd=e=>du(e,Bl),Bd=e=>_u(e,Bl),Vd=e=>bu(e,Bl),Hd=e=>mu(e,Bl),Ud=e=>mu(e,Bl).nullish(),Wd=e=>cu(e,Bl),Gd=e=>xu(e,Bl),Kd=e=>yu(e,Bl),qd=(e,t)=>vu(e,Bl,t),Jd={sectionKey:`general`,groupPath:`config.general`},Yd=e=>uu({...Jd,inputType:`text`,...e},Wl(Ul)),Xd=e=>du({...Jd,...e},Wl(Ul)),Zd=e=>_u({...Jd,required:!1,...e},Wl(Ul)),Qd=e=>bu({...Jd,required:!1,...e},Wl(Ul)),$d=e=>ql({...Jd,...e},Wl(Ul)),ef=e=>cu({...Jd,...e},Wl(Ul)),tf=e=>mu({...Jd,...e},Wl(Ul)),nf=e=>uu(e,Bl),rf=e=>_u(e,Bl),af=e=>bu(e,Bl),of=e=>ql(e,Bl),sf=e=>Jl(e,Bl),cf=e=>mu(e,Bl),lf=e=>mu(e,Bl).nullish(),uf=e=>cu(e,Bl),F=e=>fu(e,Bl,`pipe_io`),df=()=>{let e=_c;return Lu(e,`required`),e},ff=()=>{let e=gc;return Lu(e,`optional`),e},pf=()=>{let e=vc;return Lu(e,`disabled`),e},I=e=>(e=e.check(e=>{let t=e.value,n=!1;for(let e in t)if(t[e]?.enabled){n=!0;break}n||e.issues.push({code:`custom`,input:e.value,message:`All output fields are disabled. Enable at least one output.`})}),e.optional()),L=e=>e.optional();function mf(e,t,n){return{next:{environment:t,pipes:e.orderedPipePayloads,fieldAnnotations:e.fieldAnnotations.annotations,validationContext:e},...n?{rowMigration:n}:{}}}var R=class extends Wt{producesDynamicFields(){return!1}evolveSchema(e){return{next:e}}getRecordQueueConfig(e){return null}getRowFilter(){return null}};function z(e){return Ht(e)}function hf(e,t){return Ut(e,t)}const gf=`env:change@1`,_f={},vf=r.object({effect_id:r.literal(gf),connector:w(),config:r.object({environment:Cs})}),yf=class extends R{effectId=gf;schema=vf;payload;billableOperations=_f;constructor(e){super(),this.payload=this.validatePayload(e)}getConnectionsRequirements(){return[]}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getFieldReferences(){return[]}},bf=vf,xf={effectId:gf,baseEffect:z(gf),label:`Change environment`,description:`Switch the sheet between production and sandbox.`,categories:[`internal`],tags:[],lifecycle:null,billableOperations:_f,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],selectionMode:`sheet`,lockingMode:`exclusive`,lockScope:`sheet`,catalogVisibility:`hidden`,defaultPayload:{effect_id:gf,connector:null,config:{environment:`production`}}},Sf=[`id`],Cf=e=>Sf.includes(e.trim().toLowerCase()),wf=`input`;function Tf({fieldDefinitions:e,fieldAnnotations:t={}}){let n=new Map;for(let[t,r]of Object.entries(e)){let e=r.added_by.config_hash||`input`,i=n.get(e)??{pipeIdx:r.added_by.pipe_index,fields:[]};i.fields.push([t,r]),n.set(e,i)}let r=e=>{let n=t[e]?.order;return typeof n==`number`&&Number.isFinite(n)?n:1/0},i=e=>Math.min(...n.get(e).fields.map(([e])=>r(e))),a=[...n.keys()].sort((e,t)=>{if(e===`input`)return-1;if(t===`input`)return 1;let r=i(e),a=i(t);return r===a?(n.get(e).pipeIdx||0)-(n.get(t).pipeIdx||0):r-a}),o={};for(let e of a)o[e]=n.get(e).fields.sort(([t,n],[i,a])=>{let o=r(t),s=r(i);if(o!==s)return o-s;if(e!==`input`&&n.is_primary_output!==a.is_primary_output)return n.is_primary_output?-1:1;let c=n.order??1/0,l=a.order??1/0;return c===l?t.localeCompare(i):c-l}).map(([e])=>e);return{groupOrder:a,fieldOrder:o}}const Ef=e=>typeof e.kind==`string`,Df=e=>Ef(e)?e:{kind:`field`,field:e},B=e=>({kind:`field`,field:e}),Of=(...e)=>({kind:`all`,of:e.map(Df)}),kf=(...e)=>({kind:`any`,of:e.map(Df)}),Af=e=>({kind:`optional`,field:e});function jf(e,t){switch(e.kind){case`optional`:return!0;case`field`:return t.has(e.field.resolvedName);case`all`:return e.of.every(e=>jf(e,t));case`any`:return e.of.some(e=>jf(e,t))}}function Mf(e){switch(e.kind){case`field`:return[{field:e.field,required:!0}];case`optional`:return[{field:e.field,required:!1}];case`all`:case`any`:return e.of.flatMap(Mf)}}function Nf(e,t){let n=Pf(e,t);return n.ok?{valid:!0,failedPipeInputField:null,failedRecordField:null}:{valid:!1,failedPipeInputField:n.field,failedRecordField:n.recordField}}function Pf(e,t){switch(e.kind){case`optional`:return{ok:!0};case`field`:{let n=t.fields[e.field.resolvedName];if(!n)throw Error(`Record field does not exist ${e.field.name} for requirement.`);return n.status===`completed`||n.status===`queued`?{ok:!0}:{ok:!1,field:e.field,recordField:n}}case`all`:for(let n of e.of){let e=Pf(n,t);if(!e.ok)return e}return{ok:!0};case`any`:{let n=null,r=!1;for(let i of e.of)try{let e=Pf(i,t);if(r=!0,e.ok)return{ok:!0};n=e}catch{}return r?n:{ok:!0}}}}function Ff(e,t){let n={pipeId:e,config:zt(t)};return Vt.hashObject(n)}function If(e,t){let n={};return Object.values(t).forEach(t=>{let r=t,i=e.fields[r.resolvedName];i?.value!=null&&(n[r.resolvedName]=i.value)}),Object.keys(n).length===0?null:Vt.hashObject(zt(n))}var V=class{validatePayload(e){try{return this.payloadSchema.parse(e)}catch(e){throw e instanceof n?Error(r.prettifyError(e)):e}}getSecretRequirements(){return[]}getConstantRequirements(){return[]}getBucketRequirements(){return[]}getRowConditionBlocks(){return[]}async getAgentContext(e){return null}catalogOutput(e,{isPrimaryOutput:t=!1,resolveFormat:n,resolveType:r}={resolveType:void 0,resolveFormat:void 0,isPrimaryOutput:!1}){return{name:e.name,enabled:!!this.payload.config?.output_fields?.[e.name].enabled,type:r||e.type,format:n||e.format,resolvedName:this.payload.config?.output_fields?.[e.name]?.alias||e.name,description:e.description,jsonMeta:e.jsonMeta,label:e.label,isCatalogFIeld:!0,order:`order`in e?e.order:void 0,isPrimaryOutput:t}}getOutputFields(){let e={};for(let[t,n]of Object.entries(this.getRawOutputFields()))n.enabled&&(e[t]=n);return e}get inputFields(){let e={};for(let{field:t}of Mf(this.getInputRequirement()))e[t.name]=t;return e}getConfigHashKey(){return Ff(this.payload.pipe_id,this.payload.config||{})}getInputHashKey(e){return If(e,this.inputFields)}};const H={EMAIL:`Email`,TEXT:`Text`,CHAT:`Chat`,PERSONAL_EMAIL:`Personal Email`,NAMES:`Names`,WORK_EMAIL:`Work Email`,WATERFALL:`Waterfall`,WEBSITE:`Website`,SCRAPE:`Scrape`,ADDRESS:`Address`,NEWS:`News`,LINKEDIN:`LinkedIn`,X:`X (Twitter)`,ADS:`Ads`,FINANCIAL_DATA:`Financial Data`,AI:`AI`,PHONE:`Phone Number`,NEW:`New`,BETA:`Beta`,PEOPLE_PROFILES:`People Profiles`,COMPANY_PROFILES:`Company Profiles`,EVENTS:`Events`,JSON:`Json`,FIELDS:`Fields`,LOGIC:`Logic`,DEPRECATED:`Deprecated โ`};function U(e,...t){return t.map(t=>({billableOperation:t,quantity:e.count}))}function Lf(e,t){return n=>{let r=e[n];if(!r)throw Error(`Missing billableOperation def for "${n}"`);return r.allowManagedConnection?t?.(r.provider)?0:r.credits.default:r.userConnectionCredits?.default??0}}function Rf(e,t,n=`sum`){let r=e.map(e=>e.quantity*t(e.billableOperation));return r.length===0?0:n===`max`?Math.max(...r):r.reduce((e,t)=>e+t,0)}function zf(e,t){let n={};for(let r of t)for(let t of Object.values(e)){if(!t||t.provider!==r)continue;let e=t.allowManagedConnection?t.credits.default:t.userConnectionCredits?.default;if(e!==void 0){n[r]=e;break}}return n}function Bf(e){return Mf(e).map(({field:e})=>e)}function Vf({recordField:e,value:t,resolvedBy:n,widgets:r}){return e.value=t,e.status=`completed`,e.resolved_by=n,e.widgets=r,e}function Hf({recordField:e}){return e.status=`pending`,e.resolved_by=null,e.value=null,e}function Uf({recordField:e,reason:t,resolvedBy:n,widgets:r={}}){return e.value=null,e.status=`no_result`,e.resolved_by=n,e.reason=t,e.widgets=r,e}function Wf(e,t,n){return e.value=null,e.status=`failed`,e.resolved_by=null,e.reason=t,e.resolved_by=n,e.widgets={},e}function Gf(e,t){return e.value=null,e.status=`skipped`,e.resolved_by=null,e.reason=t,e.widgets={},e}function Kf(e){return e.value=null,e.status=`processing`,e.resolved_by=null,e.widgets={},e}function W(e){return e.split(`@`)[0]}function G(e){return`/docs/pipe-catalog/${W(e)}/${e.split(`@`)[1]}`}function K(e,t){return{name:e.name,description:e.description,resolvedName:t?.input_fields?.[e.name]?.alias||e.name,type:e.type,label:e.label,format:e.format}}const q={MissingSecretError:class extends Error{constructor({providerName:e}){super(`Missing secret for ${e}`)}},HttpError:class extends Error{constructor({msg:e}){super(e)}}};function qf(e,t){return typeof t==`string`?t:t(e)}function Jf(e,t){return typeof t==`string`||t===null?t:t(e)}function Yf(e,t){let n={};for(let r of t){let t=!1;for(let i of e.pipes){let a=Zf(i,r);if(a){n[r]??={type:qf(e,a.type),format:Jf(e,a.format)},t=!0;break}}if(t)continue;let i=e.derivedInputFields[r];i&&(n[r]??={type:i.type,format:null})}return n}function Xf(e,t){for(let n of e.pipes){let r=Zf(n,t);if(r)return{type:qf(e,r.type),format:Jf(e,r.format)}}let n=e.derivedInputFields[t];if(n)return{type:n.type,format:null}}function Zf(e,t){for(let[n,r]of Object.entries(e.getOutputFields()))if((r.resolvedName??n)===t)return r}const Qf=`v67.0`;function $f(e){try{let t=JSON.parse(e);if(t.access_token&&t.instance_url)return{access_token:t.access_token,instance_url:t.instance_url}}catch{}throw new q.HttpError({msg:`Salesforce credential is not a valid token bundle โ reconnect Salesforce through the OAuth flow.`})}async function ep(e,t){let{access_token:n,instance_url:r}=$f(e),i=await fetch(`${r.replace(/\/$/,``)}${t}`,{headers:{Authorization:`Bearer ${n}`},signal:AbortSignal.timeout(1e4)});if(!i.ok)throw new q.HttpError({msg:await i.text()});return await i.json()}async function tp(e,t){return(await ep(e,`/services/data/${Qf}/query?q=${encodeURIComponent(t)}`)).records??[]}function np(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(n))}const rp=e=>({requires:{connection:`salesforce`},options:async({query:t,secret:n,environment:r})=>{if(r===`sandbox`)return np([{label:`Contact`,value:`Contact`},{label:`Account`,value:`Account`},{label:`Lead`,value:`Lead`},{label:`Opportunity`,value:`Opportunity`},{label:`Demo Object (custom)`,value:`Demo_Object__c`}],t);if(!n)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(n,`/services/data/${Qf}/sobjects/`)).sobjects.filter(t=>t.queryable&&(!e?.updateableOnly||t.updateable)).map(e=>({label:e.custom?`${e.label} (custom)`:e.label,value:e.name})),t)},widgets:{provider_logo:{provider:`salesforce`}}}),ip={requires:{connection:`salesforce`,fields:[`config.object`]},options:async({query:e,secret:t,payload:n,environment:r})=>{if(r===`sandbox`)return[{label:`External Id (External_Id__c)`,value:`External_Id__c`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});let i=n?.config,a=fp(i?.object);return a?np((await ep(t,`/services/data/${Qf}/sobjects/${encodeURIComponent(a)}/describe`)).fields.filter(e=>e.externalId).map(e=>({label:`${e.label} (${e.name})`,value:e.name})),e):[]},widgets:{provider_logo:{provider:`salesforce`}}},ap={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Prospecting`,value:`Prospecting`},{label:`Demo ยท Negotiation`,value:`Negotiation`},{label:`Demo ยท Closed Won โ won`,value:`Closed Won`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel, IsClosed, IsWon FROM OpportunityStage ORDER BY SortOrder ASC`)).map(e=>({label:`${e.MasterLabel}${e.IsWon?` โ won`:e.IsClosed?` โ closed`:``}`,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},op={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Ada Lovelace (ada@example.com)`,value:`005000000000001AAA`},{label:`Demo ยท Alan Turing (alan@example.com)`,value:`005000000000002AAA`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT Id, Name, Email FROM User WHERE IsActive = true ORDER BY Name ASC LIMIT 500`)).map(e=>({label:`${e.Name} (${e.Email})`,value:e.Id})),e)},widgets:{provider_logo:{provider:`salesforce`}}},sp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Open - Not Contacted`,value:`Open - Not Contacted`},{label:`Demo ยท Working - Contacted`,value:`Working - Contacted`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel FROM LeadStatus ORDER BY SortOrder ASC`)).map(e=>({label:e.MasterLabel,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},cp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Not Started`,value:`Not Started`},{label:`Demo ยท In Progress`,value:`In Progress`},{label:`Demo ยท Completed โ`,value:`Completed`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel, IsClosed FROM TaskStatus ORDER BY SortOrder ASC`)).map(e=>({label:`${e.MasterLabel}${e.IsClosed?` โ closed`:``}`,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},lp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Outreach Key (Outreach_Key__c)`,value:`Outreach_Key__c`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(t,`/services/data/${Qf}/sobjects/Task/describe`)).fields.filter(e=>e.externalId).map(e=>({label:`${e.label} (${e.name})`,value:e.name})),e)},widgets:{provider_logo:{provider:`salesforce`}}},up=(e,t)=>({requires:{connection:`salesforce`},options:async({query:n,secret:r,environment:i})=>{if(i===`sandbox`)return[{label:`Demo ยท Technology`,value:`Technology`},{label:`Demo ยท Finance`,value:`Finance`}];if(!r)throw new q.MissingSecretError({providerName:`salesforce`});return np(((await ep(r,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/describe`)).fields.find(e=>e.name===t)?.picklistValues??[]).filter(e=>e.active).map(e=>({label:e.label,value:e.value})),n)},widgets:{provider_logo:{provider:`salesforce`}}}),dp=e=>({requires:{connection:`salesforce`},options:async({query:t,secret:n,environment:r})=>{if(r===`sandbox`)return[{label:`Demo ยท All Records`,value:`00B000000000001AAA`},{label:`Demo ยท My Records`,value:`00B000000000002AAA`}];if(!n)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(n,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/listviews`)).listviews.map(e=>({label:e.soqlCompatible?e.label:`${e.label} (not SOQL-compatible)`,value:e.id})),t)},widgets:{provider_logo:{provider:`salesforce`}}});function fp(e){return Array.isArray(e)?e[0]??``:e??``}const pp=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))};async function mp(e,{objects:t,includeStages:n=!1,includeListViewsFor:r=[],includeOwners:i=!1,includeTaskMeta:a=!1,writableOnly:o=!1}){if(e.environment===`sandbox`)return{summary:[`Sandbox Salesforce org (demo data โ field names below are examples, real orgs differ):`,`- Contact: FirstName, LastName, Email, Title, AccountId, OwnerId, Lead_Score__c (custom)`,`- Lead: FirstName, LastName, Email, Company, Status (options: Open - Not Contacted, Working - Contacted), IsConverted`,`- Account: Name, Website, Industry (picklist), NumberOfEmployees, AnnualRevenue`,`- Opportunity: Name, StageName (stages: Prospecting, Negotiation, Closed Won), Amount, CloseDate, IsClosed, IsWon`,"Use field API names verbatim (`__c` suffix = custom). Call this tool against a production connection for the org's real shape."].join(`
|
|
67
|
+
How do you...`]}},crustdata_post_list:{label:`Crustdata Post list`,type:`json`,format:`json_list_string`,description:`Rich JSON post list`,jsonMeta:{zodSchema:wr,exampleValue:Tr}},role_finder_match:{label:`Role finder match`,type:`json`,format:`json_object`,description:`Result of a role finder operation`,jsonMeta:{zodSchema:Ta,exampleValue:Ea}},role_finder_person_match:{order:90,label:`Role finder match`,type:`json`,format:`json_object`,description:`The person found at the company for the requested roles: name, primary job title, LinkedIn URL, and the company's name, domain and LinkedIn URL.`,jsonMeta:{zodSchema:Da,exampleValue:Oa}},role_finder_matches:{order:90,label:`Role finder matches`,type:`json`,format:`json_list`,description:"Every person found at the company matching the requested job titles, capped by the pipe's limit. Explode it into rows with `row:expandappend:sheet@1` to enrich each person.",jsonMeta:{zodSchema:ka,exampleValue:Aa}},role_finder_match_count:{label:`Role finder matches found`,type:`number`,format:`int`,description:`How many people are in the role finder matches list. Always at least 1 โ a company with no match leaves the cell empty instead.`,jsonMeta:null},open_job_match:{label:`Job match`,type:`json`,format:`json_object`,description:`Standardized open job posting: title, URL, category and function, advertised location, workplace and employment type, posted date, and source platform. Shared across job data providers.`,jsonMeta:{zodSchema:Ui,exampleValue:Wi}},open_job_matches:{order:90,label:`Open jobs`,type:`json`,format:`json_list`,description:"Every open job posting the provider has indexed for the company that matches the configured filters, capped by the pipe's limit. Explode it into rows with `row:expandappend:sheet@1` to work one posting per row.",jsonMeta:{zodSchema:Gi,exampleValue:Ki}},open_job_match_count:{label:`Open jobs found`,type:`number`,format:`int`,description:`How many postings are in the open jobs list. Always at least 1 โ a company with no matching opening leaves the cell empty instead.`,jsonMeta:null},open_job_company_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Standardized hiring company as a jobs dataset describes it: name, domain, LinkedIn profile URL, HQ location, and headcount bracket. Shared across job data providers.`,jsonMeta:{zodSchema:Bi,exampleValue:Vi}},job_url:{label:`Job URL`,description:`URL of a job posting on the source platform`,format:`url`,type:`string`,jsonMeta:null},post_text:{label:`Post text`,description:"The BODY of a post or feed entry โ its text content, without the headline. See `post_title` for that.",format:`long_text`,type:`string`,jsonMeta:null},post_id:{label:`Post ID`,description:`Stable identifier of the post (its LinkedIn share URN)`,format:`text`,type:`string`,jsonMeta:null},x_post_id:{label:`X post ID`,description:`The post's stable ID on X (Twitter) โ the dedup key of the X post search.`,format:`text`,type:`string`,jsonMeta:null},x_post_url:{label:`X post URL`,description:`Direct link to the post on X (Twitter)`,format:`url`,type:`string`,jsonMeta:null},x_user_id:{label:`X user ID`,description:`The account's numeric ID on X (Twitter) โ stable across username changes; the join key for X account lookups.`,format:`text`,type:`string`,jsonMeta:null},x_username:{label:`X username`,description:`The account's X (Twitter) handle without the @ โ the input for the X posts pipe.`,format:`text`,type:`string`,jsonMeta:null},ad_list:{label:`LinkedIn ads`,type:`json`,format:`json_list_string`,description:`The company's ads in the LinkedIn ad library: ad URL and id, advertiser, format, headline, body copy, CTA, landing page, image/video URLs, bucketed impression range, and the dates the ad ran. Every ad carries ad_platform: "linkedin", so ads from several platforms can be merged into one feed and still say where they came from. Dates and impressions are published only for ads served in the EU/EEA.`,jsonMeta:{zodSchema:on,exampleValue:sn}},ad_count:{label:`LinkedIn ad count`,type:`number`,format:`int`,description:`How many LinkedIn ads were found for this company. A company running no ads resolves as no_result rather than 0, so the waterfall can try the next provider.`,jsonMeta:null},google_ad_list:{label:`Google ads`,type:`json`,format:`json_list_string`,description:`The company's creatives in the Google Ads Transparency Center: ad URL, creative and advertiser ids, format (text/image/video), the creative's variations with their headline, body copy, display URL and image URLs, and first/last shown dates. Every ad carries ad_platform: "google". Copy is read off creative screenshots and can carry OCR damage.`,jsonMeta:{zodSchema:Br,exampleValue:Vr}},google_ad_count:{label:`Google ad count`,type:`number`,format:`int`,description:`How many Google creatives were found for this company. A company running no ads resolves as no_result rather than 0, so the waterfall can try the next provider.`,jsonMeta:null},meta_ad_list:{label:`Meta ads`,type:`json`,format:`json_list_string`,description:`The company's ads in the Meta Ad Library: ad URL and library id, Page identity, format, whether it is still running, publisher platforms, headline, primary text, description, CTA, landing page, media URLs, carousel/catalog cards, and the dates the ad ran. Every ad carries ad_platform: "meta".`,jsonMeta:{zodSchema:Ii,exampleValue:Li}},meta_ad_count:{label:`Meta ad count`,type:`number`,format:`int`,description:`How many Meta ads were found for this company. A company running no ads โ or whose ads all failed the advertiser check โ resolves as no_result rather than 0.`,jsonMeta:null},hn_item_id:{label:`HN item ID`,description:`The item's stable id on Hacker News โ the dedup key of the Hacker News stream. Keep it enabled: without it a stream re-adds the same item on every poll.`,format:`text`,type:`string`,jsonMeta:null},hn_item_url:{label:`HN item URL`,description:`Direct link to the item's discussion page on Hacker News.`,format:`url`,type:`string`,jsonMeta:null},hn_username:{label:`HN username`,description:`Hacker News account that posted the item.`,format:`text`,type:`string`,jsonMeta:null},hn_item_match:{label:`HN item`,type:`json`,format:`json_object`,description:`A Hacker News story or comment in HN's own vocabulary: kind, author, score and comment count at the time we saw it, the submitted external URL, the parent thread's id/title/url, posting time, and Algolia's tags (show_hn, ask_hn, front_page). Scores are near-zero for fresh items because we poll seconds after submission.`,jsonMeta:{zodSchema:Hr,exampleValue:Ur}},rss_item_title:{label:`Feed item title`,description:"RSS `title` / Atom `title`. Both formats make it optional โ an item may legally carry only a description โ but it is present on every feed measured, including forums.",format:`text`,type:`string`,jsonMeta:null},rss_item_published_at:{label:`Feed item published at`,description:"RSS `pubDate` / Atom `published`, ISO 8601 with the time. PUBLISHER-supplied rather than inferred from a page, so it is exact โ which is what makes 'anything from the last week' a filter you can trust.",format:`datetime`,type:`string`,jsonMeta:null},rss_item_url:{label:`Feed item URL`,description:`Direct link to the entry on the publisher's site.`,format:`url`,type:`string`,jsonMeta:null},rss_item_match:{label:`Feed item`,type:`json`,format:`json_object`,description:`An RSS or Atom entry in the feed's own vocabulary: the source feed, the publisher's id and link, the author, the categories or board it was posted under, and the exact publication time. Author and categories are absent on plainer feeds.`,jsonMeta:{zodSchema:ja,exampleValue:Ma}},calcom_booking_uid:{label:`Cal.com booking`,type:`string`,format:`text`,description:`Cal.com's own booking identifier. The dedupe key for a bookings stream โ a reschedule produces a NEW uid, so the same meeting can appear twice by design.`,jsonMeta:null},calcom_booking_match:{label:`Cal.com booking`,type:`json`,format:`json_object`,description:`A Cal.com booking in Cal.com's own vocabulary: which trigger fired, the booked slot and timezone, event type, organizer and attendees, meeting link, the answers to the booking form's questions, and cancellation or reschedule detail. Cal.com allows a custom payload template, so every field is best-effort โ the raw delivery is always kept alongside.`,jsonMeta:{zodSchema:Gn,exampleValue:Kn}},email_text:{label:`Email text`,type:`string`,description:`The plain-text body of a RECEIVED email. Taken from the message's text/plain part, or converted from the HTML when the sender supplied only that. This is the field to feed a prompt; the markup version is in email_message.html. Separate from email_body, which is the markdown an outbound pipe COMPOSES โ rendering a received body as markdown silently rewrites it. May be a prefix of the real body; email_message.truncated says when.`,jsonMeta:null,format:`long_text`},email_message:{label:`Email message`,type:`json`,format:`json_object`,description:"Everything about a received email that is not the sender, subject or plain-text body: the exact recipient it arrived at (including any +suffix, which is how one address serves several senders), cc and reply-to, Message-ID and thread headers, the HTML body, attachment METADATA (bytes are discarded at ingest and cannot be retrieved), and the List-Id / List-Unsubscribe headers that identify and stop a newsletter. `auth_headers` holds whatever authentication headers arrived, unparsed โ Cloudflare does not currently pass SPF/DKIM/DMARC verdicts to an email worker, so it is NOT evidence the sender is genuine.",jsonMeta:{zodSchema:jr,exampleValue:Mr}},crustdata_company_change_match:{label:`Company change`,type:`json`,format:`json_object`,description:"WHAT changed on a watched company, and nothing else โ a list discriminated on `change_type`, so each entry's shape is known: a scalar change (headcount, hiring, industry, HQ, name) carries `from` and `to`, while a funding round, acquisition or news event carries the things that appeared verbatim in `new_elements`. The company as it stands AFTER the change is in crustdata_company_match_v2 on the same row, and this field never repeats it. Read entries by predicate rather than position, e.g. `changes[change_type='news'].new_elements[].article_url`. `all_domains` is the reliable join key back to an enrolled account list. `detected_at` is when Crustdata noticed, not when it happened; `truncated` flags a run whose per-run spend cap dropped some changes.",jsonMeta:{zodSchema:aee,exampleValue:oee}},crustdata_profile_change_match:{label:`Profile change`,type:`json`,format:`json_object`,description:"WHAT changed on a watched person, and nothing else โ which fields moved, in both Crustdata's vocabulary and pipe0's. A scalar change (title, headline, location) carries `from` and `to`, which is the one thing on the row that cannot be read off person_profile_match; a job move carries the added role verbatim in `new_elements`. The person as they are AFTER the change is in person_profile_match on the same row, and this field never repeats it. `detected_at` is when Crustdata noticed, not when it happened โ the freshness tier governs the gap. `truncated` flags a run whose per-run spend cap dropped some changes.",jsonMeta:{zodSchema:Dr,exampleValue:Or}},x_post_match:{label:`X post`,type:`json`,format:`json_object`,description:`An X (Twitter) post in X's own vocabulary: post URL, text, language, expanded link targets, reply/quote flags, like/repost/reply/quote/bookmark/impression counts, author (handle, name, bio, follower count, verified), and the exact posting time.`,jsonMeta:{zodSchema:Zo,exampleValue:Qo}},x_post_list:{label:`X posts`,type:`json`,format:`json_list_string`,description:`Recent X (Twitter) posts of an account, in the same shape as x_post_match`,jsonMeta:{zodSchema:r.array(Zo),exampleValue:[Qo]}},x_profile_match:{label:`X profile`,type:`json`,format:`json_object`,description:`An X (Twitter) account profile: stable numeric user ID, handle, name, bio, follower/following/post counts, location, website, verification flag, and account creation date.`,jsonMeta:{zodSchema:Yo,exampleValue:Xo}},amplemarket_person_match:{label:`Person match`,type:`json`,format:`json_object`,description:`Person match object as returned by Amplemarket`,jsonMeta:{zodSchema:un,exampleValue:dn}},amplemarket_company_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Company match object as returned by Amplemarket`,jsonMeta:{zodSchema:cn,exampleValue:ln}},companyenrich_matches:{label:`CompanyEnrich matches`,type:`json`,format:`json_object`,description:`CompanyEnrich response list.`,jsonMeta:{zodSchema:r.array(dr),exampleValue:[fr]}},logo_url:{label:`Logo URL`,type:`string`,format:`text`,description:`Company or organization logo`,jsonMeta:null},logodev_describe_match:{label:`Company match`,type:`json`,format:`json_object`,description:`Get company logos & brand data`,jsonMeta:{exampleValue:Oi,zodSchema:Di}},mobile_number:{label:`Mobile`,type:`string`,description:`Mobile telephone number of a person.`,jsonMeta:null,format:`phone`},company_social_url:{label:`Company Social URL`,type:`string`,description:`Social Media URL for a given company (e.g. LinkedIn profile URL).`,jsonMeta:null,format:`profile_url`},professional_profile:{label:`Professional profile (LinkedIn)`,type:`json`,description:`A standardized format for returning LinkedIn profile data.`,jsonMeta:{zodSchema:Ca,exampleValue:wa},format:`json_object`},hubspot_contact_found:{label:`HubSpot contact found`,type:`boolean`,description:`Whether a HubSpot contact matched the email (a clean miss is not an error).`,jsonMeta:null,format:null},hubspot_contact_match:{order:90,label:`HubSpot contact`,type:`json`,format:`json_object`,description:`One HubSpot contact record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties. Match-pipe output also carries matched_by.`,jsonMeta:{zodSchema:Yr,exampleValue:Xr}},hubspot_companies_found_count:{label:`HubSpot companies found`,type:`number`,format:`int`,description:`Number of HubSpot companies matching the domain. Domain is HubSpot's dedupe key but not unique โ multiple matches are normal.`,jsonMeta:null},hubspot_company_match:{order:90,label:`HubSpot company`,type:`json`,format:`json_object`,description:`One HubSpot company record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties.`,jsonMeta:{zodSchema:Zr,exampleValue:Qr}},hubspot_company_matches:{order:90,label:`HubSpot company matches`,type:`json`,format:`json_list`,description:`All HubSpot companies matching the domain, each with id, url, matched_by, and the selected properties.`,jsonMeta:{zodSchema:ri,exampleValue:ii}},hubspot_deals_found_count:{label:`HubSpot deals found`,type:`number`,format:`int`,description:`Number of HubSpot deals associated with the matched company or contact.`,jsonMeta:null},hubspot_deal_match:{order:90,label:`HubSpot deal`,type:`json`,format:`json_object`,description:`One HubSpot deal record: id, url, and the standard property set as flat keys; picked custom properties nest under custom_properties.`,jsonMeta:{zodSchema:$r,exampleValue:ei}},hubspot_deal_matches:{order:90,label:`HubSpot deal matches`,type:`json`,format:`json_list`,description:`Matched HubSpot deals (sorted by close date, newest first), each with id, url, and the selected properties.`,jsonMeta:{zodSchema:ai,exampleValue:oi}},hubspot_object_id:{order:10,label:`HubSpot object ID`,type:`string`,description:`Record ID (hs_object_id) of the HubSpot record โ the identifier to write back to it (object:update, object:associations).`,jsonMeta:null,format:`text`},hubspot_owner_id:{order:12,label:`HubSpot owner ID`,type:`string`,description:"ID of the HubSpot owner (user) โ the value stored in `hubspot_owner_id` properties on contacts, companies, and deals.",jsonMeta:null,format:`text`},hubspot_owned_count:{order:50,label:`Owned records`,type:`number`,format:`int`,description:`Number of records of the selected object type owned by this HubSpot owner (only when ownership counts are enabled).`,jsonMeta:null},hubspot_owner_match:{order:90,label:`HubSpot owner`,type:`json`,format:`json_object`,description:`The HubSpot owner record: id, email, name, archived flag, and team memberships.`,jsonMeta:{zodSchema:ti,exampleValue:ni}},hubspot_update_result:{label:`HubSpot update result`,type:`json`,format:`json_object`,description:`Result of the HubSpot update: id, url, object type, and updated property names.`,jsonMeta:{zodSchema:si,exampleValue:ci}},hubspot_associated_count:{label:`HubSpot associations found`,type:`number`,format:`int`,description:`Number of associated HubSpot objects found for the source record.`,jsonMeta:null},hubspot_associated_objects:{order:90,label:`HubSpot associated objects`,type:`json`,format:`json_list`,description:`Associated HubSpot objects, each with id, url, association labels, and the selected properties under properties.`,jsonMeta:{zodSchema:li,exampleValue:ui}},hubspot_activity_result:{label:`HubSpot activity result`,type:`json`,format:`json_object`,description:`Result of logging a HubSpot engagement: id, url, the engagement type, and the record it was associated to.`,jsonMeta:{zodSchema:di,exampleValue:fi}},salesforce_record_id:{order:10,label:`Salesforce record ID`,type:`string`,description:`18-character ID of the Salesforce record โ the identifier to write back to it (record:update, record:lookup). Every Salesforce surface emits this same column, so it chains regardless of source.`,jsonMeta:null,format:`text`},salesforce_owned_count:{order:50,label:`Owned records`,type:`number`,format:`int`,description:`Number of records of the selected object type owned by this Salesforce user (only when ownership counts are enabled).`,jsonMeta:null},salesforce_person_found:{label:`Salesforce person found`,type:`boolean`,description:`Whether the email matched a Salesforce Contact, Lead, or Person Account (a clean miss is not an error).`,jsonMeta:null,format:null},salesforce_accounts_found_count:{label:`Salesforce accounts found`,type:`number`,format:`int`,description:`Number of Salesforce accounts matching the domain. Accounts have no unique domain key โ multiple matches are normal.`,jsonMeta:null},salesforce_opportunities_found_count:{label:`Salesforce opportunities found`,type:`number`,format:`int`,description:`Number of Salesforce opportunities reached via the matched account or contact role.`,jsonMeta:null},salesforce_record_found:{label:`Salesforce record found`,type:`boolean`,description:`Whether the record ID resolved to a live Salesforce record (deleted/missing is a clean miss, not an error).`,jsonMeta:null,format:null},salesforce_record_created:{label:`Salesforce record created`,type:`boolean`,description:`Whether the assert created a new record (true) or updated an existing one matched by the external ID (false).`,jsonMeta:null,format:null},salesforce_contact_match:{order:90,label:`Salesforce contact`,type:`json`,format:`json_object`,description:`One Salesforce contact record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Wa,exampleValue:Ga}},salesforce_lead_match:{order:90,label:`Salesforce lead`,type:`json`,format:`json_object`,description:`One Salesforce lead record: id, url, and the standard field set as flat typed keys (including IsConverted/ConvertedContactId); picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Ka,exampleValue:qa}},salesforce_account_match:{order:90,label:`Salesforce account`,type:`json`,format:`json_object`,description:`One Salesforce account record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Ja,exampleValue:Ya}},salesforce_account_matches:{order:90,label:`Salesforce account matches`,type:`json`,format:`json_list`,description:`All Salesforce accounts matching the domain (oldest first), each with id, url, matched_variant, and the selected fields.`,jsonMeta:{zodSchema:ro,exampleValue:io}},salesforce_opportunity_match:{order:90,label:`Salesforce opportunity`,type:`json`,format:`json_object`,description:`One Salesforce opportunity record: id, url, and the standard field set as flat typed keys (IsClosed/IsWon carry the org-invariant status); picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Xa,exampleValue:Za}},salesforce_opportunity_matches:{order:90,label:`Salesforce opportunity matches`,type:`json`,format:`json_list`,description:`Matched Salesforce opportunities (newest close date first), each with id, url, contact_roles edge metadata, and the selected fields.`,jsonMeta:{zodSchema:ao,exampleValue:oo}},salesforce_user_match:{order:90,label:`Salesforce user`,type:`json`,format:`json_object`,description:`One Salesforce user record: id, url, and the standard field set as flat typed keys; picked custom fields nest under custom_properties.`,jsonMeta:{zodSchema:Qa,exampleValue:$a}},salesforce_person_match:{order:90,label:`Salesforce person`,type:`json`,format:`json_object`,description:`The matched Salesforce person across Contact, Lead, and Person Account shapes: object_type says which; keys foreign to the matched shape are null. Carries matched_by and is_converted_redirect.`,jsonMeta:{zodSchema:to,exampleValue:no}},salesforce_record_match:{order:90,label:`Salesforce record`,type:`json`,format:`json_object`,description:`A generic Salesforce record (any object): id, url, object_type, and ALL fields visible to the connected user nested under record.`,jsonMeta:{zodSchema:so,exampleValue:co}},salesforce_update_result:{label:`Salesforce update result`,type:`json`,format:`json_object`,description:`Result of the Salesforce update: id, url, object type, updated field names, and the fresh post-write record (formulas/triggers may rewrite values after save).`,jsonMeta:{zodSchema:lo,exampleValue:uo}},salesforce_activities_found_count:{label:`Salesforce activities found`,type:`number`,format:`int`,description:`Total tasks and events on the record's timeline matching the filters โ the true total before the display limit.`,jsonMeta:null},salesforce_last_activity_date:{label:`Salesforce last activity date`,type:`string`,format:`date`,description:`Most recent activity date across the record's tasks and events (null when the timeline is empty) โ chain a run_if on it to gate stale records.`,jsonMeta:null},salesforce_activities:{order:90,label:`Salesforce activities`,type:`json`,format:`json_list`,description:`The record's activity timeline (tasks and events, newest first), each with id, url, object_type, subject, status, activity_date, subtype, who_id/what_id anchors, and picked custom fields under custom_properties.`,jsonMeta:{zodSchema:po,exampleValue:mo}},salesforce_activity_result:{label:`Salesforce activity result`,type:`json`,format:`json_object`,description:`Result of logging a Salesforce activity: id, url, subject, subtype, the who_id/what_id anchors, and created (false only when an idempotency key matched an existing record).`,jsonMeta:{zodSchema:ho,exampleValue:go}},professional_profile_url:{label:`LinkedIn Profile URL`,type:`string`,format:`profile_url`,description:`A person's LinkedIn profile URL.`,jsonMeta:null},attio_record_id:{order:10,label:`Attio record ID`,type:`string`,description:`Record ID of the Attio record โ the identifier to write back to it (record:lookup, record:update).`,jsonMeta:null,format:`text`},attio_entry_id:{order:11,label:`Attio entry ID`,type:`string`,description:`ID of the Attio list entry (a record can sit in a list more than once; the entry carries the list-level attributes such as stage).`,jsonMeta:null,format:`text`},attio_person_found:{label:`Attio person found`,type:`boolean`,description:`Whether an Attio person matched the email (a clean miss is not an error).`,jsonMeta:null,format:null},attio_person_match:{order:90,label:`Attio person`,type:`json`,format:`json_object`,description:`One Attio person record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties. Match-pipe output also carries matched_by.`,jsonMeta:{zodSchema:Cn,exampleValue:wn}},attio_companies_found_count:{label:`Attio companies found`,type:`number`,format:`int`,description:`Number of Attio companies matching the domain. Exact domain values are unique (โค1); root-domain matching can legitimately return several subdomain records.`,jsonMeta:null},attio_company_match:{order:90,label:`Attio company`,type:`json`,format:`json_object`,description:`One Attio company record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties.`,jsonMeta:{zodSchema:Tn,exampleValue:En}},attio_company_matches:{order:90,label:`Attio company matches`,type:`json`,format:`json_list`,description:`All Attio companies matching the domain, each with id, url, matched_on, and the selected attributes.`,jsonMeta:{zodSchema:Dn,exampleValue:On}},attio_deals_found_count:{label:`Attio deals found`,type:`number`,format:`int`,description:`Number of Attio deals associated with the matched company or person.`,jsonMeta:null},attio_deal_match:{order:90,label:`Attio deal`,type:`json`,format:`json_object`,description:`One Attio deal record: id, url, and the standard attribute set as flat keys; picked custom attributes nest under custom_properties. Stage titles are workspace-defined.`,jsonMeta:{zodSchema:kn,exampleValue:An}},attio_deal_matches:{order:90,label:`Attio deal matches`,type:`json`,format:`json_list`,description:`Matched Attio deals (newest first), each with id, url, and the selected attributes.`,jsonMeta:{zodSchema:jn,exampleValue:Mn}},attio_entry_match:{order:90,label:`Attio list entry`,type:`json`,format:`json_object`,description:`One Attio list entry: entry id, the parent record's url and id, entry-level attribute values under entry_values, and picked parent attributes under custom_properties.`,jsonMeta:{zodSchema:Fn,exampleValue:In}},attio_record_found:{label:`Attio record found`,type:`boolean`,description:`Whether an Attio record was found (a clean miss is not an error).`,jsonMeta:null,format:null},attio_record_match:{order:90,label:`Attio record`,type:`json`,format:`json_object`,description:`One Attio record of any object (custom objects included): id, url, object, attribute values under values, and picked attributes under custom_properties.`,jsonMeta:{zodSchema:Nn,exampleValue:Pn}},attio_update_result:{label:`Attio update result`,type:`json`,format:`json_object`,description:`Result of the Attio update: id, url, object, and updated attribute slugs.`,jsonMeta:{zodSchema:zn,exampleValue:Bn}},attio_activities_found_count:{label:`Attio activities found`,type:`number`,format:`int`,description:`Number of Attio activities (notes, meetings, tasks) linked to the record โ the true total before the display cap.`,jsonMeta:null},attio_last_activity_date:{label:`Attio last activity date`,type:`string`,format:`datetime`,description:`Timestamp of the most recent Attio activity linked to the record โ the chainable staleness gate (null when there is none).`,jsonMeta:null},attio_activities:{order:90,label:`Attio activities`,type:`json`,format:`json_list`,description:`Per-record activity timeline merged from Attio notes, meetings, and tasks (newest first): each item carries id, type, title, content, occurred_at, url, and type-specific fields.`,jsonMeta:{zodSchema:pn,exampleValue:mn}},attio_workspace_member_id:{order:10,label:`Attio workspace member ID`,type:`string`,description:`Workspace member ID of the Attio user โ matches actor-reference attributes (e.g. a deal's owner) on other Attio records.`,jsonMeta:null,format:`text`},attio_workspace_member_match:{order:90,label:`Attio workspace member`,type:`json`,format:`json_object`,description:`One Attio workspace member: id, email, name, access level, and avatar URL.`,jsonMeta:{zodSchema:Ln,exampleValue:Rn}}},hs={is_claim_successful:{},is_enrolled:{},is_unenrolled:{},company_change_type:{},news_url:{},news_title:{},profile_change_type:{},bucket_counter:{},found_in_bucket:{},bucket_event_count:{},bucket_event_last_at:{},signal_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`signal`:`signals`}`}}:{}}},signal_match:{getStaticWidgets(e){let t=e&&typeof e==`object`&&`signal_label`in e&&typeof e.signal_label==`string`?e.signal_label:null;return t?{display_value:{label:t}}:{}}},signal_count:{},signal_window_start:{},formula_result:{},company_description:{},cleaned_company_name:{},company_industry:{},icypeas_person_match:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.firstname} ${t.lastname} profile`}}}},icypeas_company_match:{getStaticWidgets(e){return e?{display_value:{label:`${e.name} profile`}}:{}}},person_profile_match:{},primary_job_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},primary_seniority:{},primary_company_domain:{},company_region:{getStaticWidgets:e=>{let t={},n=us(e);return n&&(t.location_indicator={emoji:n}),t}},location_hint:{},estimated_revenue:{},founded_year:{},technology_list:{},spending_trend:{getStaticWidgets(e){let t=e;return{display_value:{label:`${t>3?`๐ผ๐ผ๐ผ`:t>1?`๐ผ๐ผ`:t>0?`๐ผ`:t<-3?`๐ฝ๐ฝ๐ฝ`:t<-1?`๐ฝ๐ฝ`:t<0?`๐ฝ`:``} ${Math.round(t*100)}%`}}}},technology_match_builtwith:{getStaticWidgets(e){return{display_value:{label:`Technology profile`}}}},number_of_social_followers:{},email:{},personal_email:{},alternate_personal_emails:{},company_news_summary:{},work_email:{},headcount:{},company_website_url:{},company_domain:{getStaticWidgets(e){return typeof e==`string`?{entity_logo:{entity:e,image_url:Jt(e)}}:{}}},company_name:{},first_name:{},addressee_name:{},address_line_1:{},address_line_2:{},job_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},job_posting_title:{getStaticWidgets(e){return typeof e==`string`?{emoji:{value:va(e)}}:{}}},job_description:{},profile_headline:{},address_city:{},address_country:{},address_state:{},zip_code:{},last_name:{},is_work_email:{},name:{getStaticWidgets(e){return typeof e==`string`?{avatar:{image_url:``,name:e}}:{}}},ip_address:{},skills:{},avatar_url:{},string_input:{},domain:{},url_input:{},slugified:{},timestamp:{},http_response_status:{},http_response_body:{},http_response_headers:{},luma_id:{},registered_at:{},luma_event_guest_match:{getStaticWidgets(){return{display_value:{label:`Guest`}}}},google_calendar_event_id:{getStaticWidgets(e){return e?{entity_logo:{entity:`Google Calendar`,image_url:Jt(`calendar.google.com`)}}:{}}},event_title:{},attendee_emails:{},calendar_event_match:{getStaticWidgets(){return{display_value:{label:`Event`}}}},slack_user_id:{},slack_member_match:{getStaticWidgets(e){if(!e)return{};let t=e,n=t.member_real_name||t.member_display_name||t.member_handle;return n?{display_value:{label:n}}:{}}},estimated_salary:{},scrape_list_response:{},clado_person_match:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} profile`}}:{}}},clado_person_match_v2:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} profile`}}:{}}},company_social_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0}}},crustdata_profile_match_score:{},is_email_valid:{},amplemarket_person_match:{getStaticWidgets(){return{display_value:{label:`Person match`}}}},amplemarket_company_match:{getStaticWidgets(){return{display_value:{label:`Company match`}}}},profile_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0,icon:fs(e)?{key:`linkedin`}:void 0}}},company_profile_url:{getStaticWidgets(e){let t=ps(e);return{display_value:t?{label:t}:void 0,icon:fs(e)?{key:`linkedin`}:void 0}}},developer_profile_url:{},alternative_developer_profile_urls:{},profile_posts:{getStaticWidgets(){return{display_value:{label:`LinkedIn posts`}}}},profile:{getStaticWidgets(e){return e?{display_value:{label:`${e.name||`Person`} LinkedIn profile`}}:{}}},clado_person_profile:{getStaticWidgets(e){return e?{display_value:{label:`${e.profile?.name||`Person`} match`}}:{}}},email_subject:{},message:{},slack_message_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},slack_direct_message_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},resend_email_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},email_body:{},mobile:{},landline:{},phone:{},funding_history:{},funding_total_usd:{},deal_name:{},deal_amount:{},leadmagic_competitor_list:{getStaticWidgets(e){return e?{display_value:{label:e.map(e=>e.company_name).slice(0,4).join(`, `)}}:{}}},leadmagic_acquisition_history:{getStaticWidgets(e){return e?{display_value:{label:e.map(e=>e.company_name).slice(0,4).join(`, `)}}:{}}},leadmagic_company_news_list:{getStaticWidgets(e){return e?{display_value:{label:`${e.length} news sources`}}:{}}},merge_result:{},website_markdown:{getStaticWidgets(e){return e?{display_value:{label:`๐ Markdown result`}}:{}}},urls:{},website_html:{},website_url:{},website_links:{},mapped_links:{},firecrawl_extract_result:{getStaticWidgets(){return{display_value:{label:`Extract result`}}}},parallel_extract_result:{getStaticWidgets(){return{display_value:{label:`Extract result`}}}},exa_match_evaluation:{getStaticWidgets(){return{display_value:{label:`Exa match`}}}},email_validation_status:{},million_validation_match:{getStaticWidgets(){return{display_value:{label:`Validation result`}}}},post_list_string:{},crustdata_post_list:{getStaticWidgets(e){return{entity_logo:{entity:`LinkedIn`,image_url:qt.linkedin}}}},crustdata_company_match:{},crustdata_company_match_v2:{},crustdata_company_identity_matches:{},crustdata_person_match:{},parallel_person_entity_match:{},parallel_company_entity_match:{},resend_contact_id:{},lemlist_lead_id:{},hubspot_contact_found:{},hubspot_contact_match:{},hubspot_companies_found_count:{},hubspot_company_match:{},hubspot_company_matches:{},hubspot_deals_found_count:{},hubspot_deal_match:{},hubspot_object_id:{getStaticWidgets(){return{entity_logo:{entity:`Hubspot`,image_url:en(`hubspot`).logoUrl}}}},hubspot_owner_id:{getStaticWidgets(){return{entity_logo:{entity:`Hubspot`,image_url:en(`hubspot`).logoUrl}}}},hubspot_owned_count:{},hubspot_owner_match:{},hubspot_deal_matches:{},hubspot_update_result:{},hubspot_associated_count:{},hubspot_associated_objects:{},hubspot_activity_result:{},salesforce_record_id:{getStaticWidgets(){return{entity_logo:{entity:`Salesforce`,image_url:en(`salesforce`).logoUrl}}}},salesforce_owned_count:{},salesforce_person_found:{},salesforce_accounts_found_count:{},salesforce_opportunities_found_count:{},salesforce_record_found:{},salesforce_record_created:{},salesforce_contact_match:{},salesforce_lead_match:{},salesforce_account_match:{},salesforce_account_matches:{},salesforce_opportunity_match:{},salesforce_opportunity_matches:{},salesforce_user_match:{},salesforce_person_match:{},salesforce_record_match:{},salesforce_update_result:{},salesforce_activities_found_count:{},salesforce_last_activity_date:{},salesforce_activities:{},salesforce_activity_result:{},lemlist_enrollment_result:{getStaticWidgets(e){return e?{display_value:{label:`Enrolled`}}:{}}},amplemarket_sequence_id:{},sheet_record_id:{},sheet_record_ids:{},sheet_rows_found_count:{},sheet_deleted_count:{},sheet_found_rows:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.length} row${t.length===1?``:`s`}`}}}},sheet_found_row_ids:{},db_rows_found_count:{},db_found_rows:{getStaticWidgets(e){if(!e)return{};let t=e;return{display_value:{label:`${t.length} row${t.length===1?``:`s`}`}}}},companyenrich_match:{},companyenrich_matches:{},input_objects:{},role_finder_match:{},role_finder_person_match:{},role_finder_matches:{},role_finder_match_count:{},sheet:{},logodev_describe_match:{getStaticWidgets(){return{display_value:{label:`Match`}}}},logo_url:{getStaticWidgets(){return{display_value:{label:`Logo URL`}}}},post_match:{},post_text:{},post_id:{getStaticWidgets(){return{display_value:{label:`id`,marks:[`underline`]}}}},x_post_match:{getStaticWidgets(){return{entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}}},hn_item_id:{getStaticWidgets(e){return{display_value:{label:`id`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://news.ycombinator.com/item?id=${encodeURIComponent(e)}`}}:{}}}},hn_item_url:{},hn_username:{getStaticWidgets(e){return typeof e==`string`&&e?{external_link:{url:`https://news.ycombinator.com/user?id=${encodeURIComponent(e)}`}}:{}}},hn_item_match:{},rss_item_title:{},rss_item_published_at:{},rss_item_url:{},rss_item_match:{},calcom_booking_uid:{getStaticWidgets(e){return{display_value:{label:`uid`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://app.cal.com/booking/${encodeURIComponent(e)}`}}:{}}}},calcom_booking_match:{},email_text:{},email_message:{},crustdata_company_change_match:{},crustdata_profile_change_match:{},x_post_id:{getStaticWidgets(e){return{display_value:{label:`id`,marks:[`underline`]},...typeof e==`string`&&e?{external_link:{url:`https://x.com/i/web/status/${encodeURIComponent(e)}`}}:{}}}},x_post_url:{},x_user_id:{getStaticWidgets(){return{display_value:{label:`id`,marks:[`underline`]}}}},x_username:{getStaticWidgets(e){return typeof e!=`string`||!e?{}:{external_link:{url:`https://x.com/${encodeURIComponent(e)}`}}}},x_post_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`post`:`posts`}`},entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}:{}}},ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},ad_count:{},google_ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},google_ad_count:{},meta_ad_list:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} ${e.length===1?`ad`:`ads`}`}}:{}}},meta_ad_count:{},x_profile_match:{getStaticWidgets(){return{entity_logo:{entity:`X`,image_url:en(`x`).logoUrl}}}},open_job_match:{},open_job_matches:{getStaticWidgets(e){return Array.isArray(e)?{display_value:{label:`${e.length} open ${e.length===1?`job`:`jobs`}`}}:{}}},open_job_match_count:{},open_job_company_match:{},job_url:{},mobile_number:{},created_sheet:{},professional_profile:{},professional_profile_url:{},crustdata_companyenrich_match:{},template_output:{},zerobounce_validation_match:{},zerobounce_validation_status:{getStaticWidgets(e){return{display_value:{label:e===`valid`?`โ
Valid`:e===`invalid`?`โ Invalid`:e===`catch-all`?`โพ๏ธ Catch All`:e===`abuse`?`โ ๏ธ Abuse`:e===`do_not_mail`?`โโ Do not mail`:e===`spamtrap`?`โโโ Spam Trap`:e}}}},gmail_email_success:{getStaticWidgets(e){return{display_value:{label:e?`โ
Sent`:`โ Not sent`}}}},gmail_draft_id:{getStaticWidgets(e){return{display_value:{label:e?`โ
Draft created`:`โ No draft`}}}},attio_record_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_entry_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_person_found:{},attio_person_match:{},attio_companies_found_count:{},attio_company_match:{},attio_company_matches:{},attio_deals_found_count:{},attio_deal_match:{},attio_deal_matches:{},attio_entry_match:{},attio_record_found:{},attio_record_match:{},attio_update_result:{},attio_activities:{},attio_activities_found_count:{},attio_last_activity_date:{},attio_workspace_member_id:{getStaticWidgets(){return{entity_logo:{entity:`Attio`,image_url:en(`attio`).logoUrl}}}},attio_workspace_member_match:{}};function _(e){return{...ms[e],name:e}}function gs(e,t){if(ys(e,t))return hs[e]}function _s(e){return e in ms}function vs(e){return _s(e)?ms[e].order??null:null}function ys(e,t){return e in ms?ms[e].format===t:!1}function bs(e,t,n){if(!t.added_by||t.added_by.ref===`input`||t.added_by.pipe_index==null)throw Error(`Tried to find output field info for field not generated by pipe: ${e}, added_by: ${t.added_by}`);let r=n.orderedPipeInstances[t.added_by.pipe_index];if(!r)throw Error(`Unable to find pipe instance at index ${t.added_by.pipe_index} for resolved field ${e}`);let i=Object.entries(r.getOutputFields()).find(([t,n])=>n.resolvedName===e);if(!i)throw Error(`Resolved pipe output field '${e}' not found for pipe ${t.added_by.ref}`);let[a,o]=i;return{fieldName:a,...o}}const xs=r.enum(`company_description.cleaned_company_name.company_industry.company_region.location_hint.estimated_revenue.founded_year.technology_list.spending_trend.technology_match_builtwith.number_of_social_followers.email.personal_email.alternate_personal_emails.company_news_summary.work_email.headcount.company_website_url.company_domain.company_name.first_name.addressee_name.address_line_1.address_line_2.job_title.job_description.profile_headline.address_city.address_country.address_state.zip_code.last_name.is_work_email.companyenrich_match.companyenrich_matches.name.ip_address.skills.avatar_url.estimated_salary.is_email_valid.profile_url.developer_profile_url.alternative_developer_profile_urls.company_profile_url.profile_posts.clado_person_match.clado_person_match_v2.icypeas_person_match.icypeas_company_match.clado_person_profile.resend_email_success.email_body.email_subject.profile.mobile.landline.phone.message.slack_message_success.slack_direct_message_success.slack_user_id.slack_member_match.funding_history.funding_total_usd.deal_name.deal_amount.template_output.gmail_email_success.gmail_draft_id.zerobounce_validation_status.zerobounce_validation_match.leadmagic_competitor_list.leadmagic_acquisition_history.leadmagic_company_news_list.merge_result.mapped_links.website_markdown.website_html.website_url.urls.website_links.firecrawl_extract_result.parallel_extract_result.exa_match_evaluation.email_validation_status.million_validation_match.scrape_list_response.resend_contact_id.sheet_record_id.sheet_record_ids.sheet_rows_found_count.sheet_deleted_count.sheet_found_rows.sheet_found_row_ids.db_rows_found_count.db_found_rows.input_objects.role_finder_match.role_finder_person_match.role_finder_matches.role_finder_match_count.logodev_describe_match.logo_url.crustdata_company_match.crustdata_company_match_v2.crustdata_companyenrich_match.crustdata_company_identity_matches.crustdata_person_match.person_profile_match.primary_job_title.primary_seniority.primary_company_domain.parallel_person_entity_match.parallel_company_entity_match.post_list_string.crustdata_post_list.crustdata_profile_match_score.amplemarket_person_match.amplemarket_company_match.created_sheet.sheet.string_input.domain.url_input.slugified.timestamp.http_response_status.http_response_body.http_response_headers.luma_id.registered_at.luma_event_guest_match.google_calendar_event_id.event_title.attendee_emails.calendar_event_match.post_match.post_text.post_id.hn_item_id.hn_item_url.hn_username.hn_item_match.rss_item_title.rss_item_published_at.rss_item_url.rss_item_match.calcom_booking_uid.calcom_booking_match.email_text.email_message.crustdata_company_change_match.crustdata_profile_change_match.x_post_id.x_post_url.x_user_id.x_username.x_post_match.x_post_list.x_profile_match.ad_list.ad_count.google_ad_list.google_ad_count.meta_ad_list.meta_ad_count.open_job_match.open_job_matches.open_job_match_count.open_job_company_match.job_posting_title.job_url.lemlist_lead_id.lemlist_enrollment_result.amplemarket_sequence_id.is_claim_successful.is_enrolled.is_unenrolled.company_change_type.news_url.news_title.profile_change_type.bucket_counter.found_in_bucket.bucket_event_count.bucket_event_last_at.signal_list.signal_match.signal_count.signal_window_start.formula_result.hubspot_contact_found.hubspot_contact_match.hubspot_companies_found_count.hubspot_company_match.hubspot_company_matches.hubspot_deals_found_count.hubspot_deal_match.hubspot_deal_matches.hubspot_owner_id.hubspot_owned_count.hubspot_owner_match.hubspot_object_id.hubspot_update_result.hubspot_associated_count.hubspot_associated_objects.hubspot_activity_result.salesforce_record_id.salesforce_owned_count.salesforce_person_found.salesforce_accounts_found_count.salesforce_opportunities_found_count.salesforce_record_found.salesforce_record_created.salesforce_contact_match.salesforce_lead_match.salesforce_account_match.salesforce_account_matches.salesforce_opportunity_match.salesforce_opportunity_matches.salesforce_user_match.salesforce_person_match.salesforce_record_match.salesforce_update_result.salesforce_activities.salesforce_activities_found_count.salesforce_last_activity_date.salesforce_activity_result.attio_record_id.attio_entry_id.attio_person_found.attio_person_match.attio_companies_found_count.attio_company_match.attio_company_matches.attio_deals_found_count.attio_deal_match.attio_deal_matches.attio_entry_match.attio_record_found.attio_record_match.attio_update_result.attio_activities.attio_activities_found_count.attio_last_activity_date.attio_workspace_member_id.attio_workspace_member_match.professional_profile_url.professional_profile.company_social_url.mobile_number`.split(`.`)),Ss=r.enum(`pipe0.findymail.crustdata.hunter.zerobounce.millionverifier.googlemaps.gemini.anthropic.leadmagic.mixrank.builtwith.perplexity.serper.icypeas.prospeo.clado.resend.slack.gmail.googlecalendar.firecrawl.exa.openai.companyenrich.logodev.amplemarket.parallel.surfe.wiza.aviato.forager.luma.postgres.databricks.lemlist.hubspot.salesforce.attio.x.hackernews.calcom`.split(`.`)),Cs=r.enum([`production`,`sandbox`]),ws=`prompt:run@1.agent:run@1.company:newssummary:website@1.company:newssummary:domain@1.company:techstack:builtwith@1.company:techstack:builtwith@2.company:websiteurl:email@1.company:domain:workemail@1.company:funding:leadmagic@1.company:funding:leadmagic@2.company:funding:waterfall@1.people:workemail:waterfall@1.person:workemail:waterfall@1.people:email:iswork@1.email:iswork@1.people:name:split@1.person:name:split@1.person:name:join@1.people:validate:email:zerobounce@1.people:email:validate:zerobounce@2.email:validate:zerobounce@1.people:mobilenumber:workemail:waterfall@1.company:overview@1.company:overview@2.company:overview@3.json:extract:multi@1.email:write@1.message:write@1.email:send:resend@1.email:send:gmail@1.email:draft:gmail@1.message:send:slack@1.message:send-direct:slack@1.template:fill@1.contact:create:resend@1.lead:enroll:lemlist@1.contact:match:hubspot@1.company:match:hubspot@1.deal:match:hubspot@1.object:update:hubspot@1.object:associations:hubspot@1.activity:log:hubspot@1.person:match:salesforce@1.account:match:salesforce@1.opportunity:match:salesforce@1.record:lookup:salesforce@1.record:update:salesforce@1.record:assert:salesforce@1.activities:find:salesforce@1.activity:log:salesforce@1.person:match:attio@1.company:match:attio@1.deal:match:attio@1.record:match:attio@1.record:lookup:attio@1.record:update:attio@1.activities:find:attio@1.lead:enroll:amplemarket@1.people:match:role:waterfall@1.person:match:role:waterfall@1.role:waterfall@1.roles:waterfall@1.person:identity:amplemarket@1.company:identity@2.company:identity@3.company:identity:crustdata@1.person:match:amplemarket@1.people:phone:profile:waterfall@1.person:mobile:profileurl:waterfall@1.people:personalemail:profile:waterfall@1.person:personalemail:profileurl:waterfall@1.people:profile:waterfall@1.person:profile:waterfall@1.person:profile:waterfall@2.people:profileurl:email:waterfall@1.person:profileurl:email:waterfall@1.person:profileurl:name@1.people:email:validate:zerobounce@1.person:email:validate:millionverifier@1.people:phone:workemail:waterfall@1.person:mobile:workemail:waterfall@1.fields:merge@1.field:slugify@1.field:domainify@1.field:timestamp@1.formula:run@1.signals:personprofilematch@1.website:scrape:firecrawl@1.website:scrapelist:firecrawl@1.website:extract:firecrawl@1.website:extract:parallel@1.website:maplinks:firecrawl@1.website:markdown:parallel@1.row:append:sheet@1.row:expandappend:sheet@1.row:roundrobin:sheet@1.bucket:claim@1.stream:enroll@1.stream:unenroll@1.bucket:count@1.bucket:check@1.bucket:countif@1.rows:find:sheet@1.rows:delete:sheet@1.rows:find:postgres@1.rows:find:databricks@1.company:lookalikes:companyenrich@1.company:lookalikes:companyenrich@2.company:match:logodev@1.company:match:logodev@2.person:posts:content:crustdata@1.profile:posts:x@1.post:create:x@1.ads:linkedin:waterfall@1.ads:google:waterfall@1.ads:meta:waterfall@1.company:match:crustdata@1.company:match:crustdata@2.company:match:amplemarket@1.company:jobs:amplemarket@1.people:profile:workemail:crustdata@1.person:profile:workemail:crustdata@1.people:workemail:profileurl:waterfall@1.person:workemail:profileurl:waterfall@1.people:identity:email:waterfall@1.person:identity:email:waterfall@1.person:identity:email:waterfall@2.person:devprofileurl:profileurl:waterfall@1.http:request@1.company:identity@1.people:professionalprofile:waterfall@1.people:professionalprofileurl:name@1.people:professionalprofileurl:email:waterfall@1.people:mobilenumber:professionalprofile:waterfall@1`.split(`.`),Ts=r.enum(ws),Es=[`string`,`number`,`boolean`,`json`,`unknown`],Ds=r.enum(Es),Os=r.union([r.number(),r.string()]),ks=r.union([r.literal(`completed`),r.literal(`failed`),r.literal(`pending`),r.literal(`queued`),r.literal(`processing`),r.literal(`no_result`),r.literal(`skipped`)]),As=r.union([r.string().min(1),r.number(),r.boolean(),r.null(),r.record(r.string(),r.unknown()),r.array(r.unknown())]),js=r.object({example_value:r.any().nullable(),schema:r.any().nullable()}),Ms=r.object({type:r.literal(`static`).optional()}),Ns=Ms.extend({image_url:r.url().describe(`URL to the provider's logo image.`),entity:r.string().describe(`The name of the entity.`)}),Ps=Ms.extend({emoji:r.string().describe(`Country flag emoji.`)}),Fs=Ms.extend({url:r.url().describe(`Destination opened when the external-link icon is clicked.`)}),Is=Ms.extend({image_url:r.url().describe(`URL to the provider's logo image.`),name:r.string().describe(`The name of the avatar owner.`)}),Ls=Ms.extend({attempted_providers:r.array(r.object({provider:Ss})),available_providers:r.array(Ss),successful_provider:Ss.optional()}),Rs=r.enum([`linkedin`,`job`]),zs=Ms.extend({key:Rs}).optional(),Bs=Ms.extend({result_status:r.enum([`completed`,`failed`])}).optional(),Vs=Ms.extend({list:r.array(r.object({source:r.string(),description:r.string().optional(),url:r.string()}))}).optional(),Hs=Ms.extend({numeric:r.int().min(1).max(5)}).optional(),Us=Ms.extend({value:r.string().min(1)}).optional(),Ws=r.enum([`bold`,`italic`,`underline`,`strikethrough`]),Gs=r.object({display_value:Ms.extend({label:r.string().optional(),marks:r.array(Ws).optional()}),entity_logo:Ns.optional(),external_link:Fs.optional(),location_indicator:Ps.optional(),avatar:Is.optional(),waterfall:Ls.optional(),icon:zs,action_summary:Bs,sources:Vs,confidence:Hs,emoji:Us}).partial().describe(`A map of widgets associated with this field for UI display, keyed by widget type.`),Ks=r.object({code:r.string(),message:r.string(),path:r.string().optional()}),qs=r.object({code:r.string(),summary:r.string(),message:r.string()}),Js=[`json_object`,`json_list`,`json_list_string`,`url`,`website_url`,`profile_url`,`email`,`datetime`,`currency`,`date`,`phone`,`markdown`,`long_text`,`text`,`int`,`decimal`,`address_line_1`,`zip_code`,`percent`],Ys=r.enum(Js);Ys.nullable();const Xs=r.object({type:Ds,label:r.string().nullable().optional(),format:Ys.nullable().optional(),json_metadata:js.nullable().optional(),order:r.number().nullable().optional()}),Zs=r.record(r.string(),Xs),Qs=r.strictObject({order:r.number().int().gte(-1e9).lte(1e9).nullable()}),$s=r.enum([...ws,`input`]).nullable(),ec=r.enum([...ws,`input`,`system`]).nullable(),tc=r.object({ref:$s,config_hash:r.string().nullable()}),nc=r.object({ref:ec,environment:Cs.nullable(),config_hash:r.string().nullable(),input_hash:r.string().nullable()}),rc=r.object({value:As,status:ks,type:Ds,reason:qs.nullable(),claimed_by:tc,resolved_by:nc.nullable(),widgets:Gs.optional(),format:Ys.nullable()}),ic=r.object({value:As,status:ks,reason:qs.nullable().optional(),type:Ds.optional(),format:Ys.nullable().optional(),claimed_by:tc.optional(),resolved_by:nc.nullable().optional(),widgets:Gs.optional()}),ac=r.record(r.string(),r.union([As,ic])).openapi(`PipesInput`),oc=r.object({id:Os,fields:r.record(Os,rc)}),sc=r.object({type:r.literal(`catalog`),fieldName:r.string().min(1)}),cc=r.object({type:Ds,label:r.string(),added_by:r.object({ref:r.union([Ts,r.literal(`input`)]),config_hash:r.string().nullable(),pipe_index:r.number().nullable()}),format:Ys.nullable(),is_primary_output:r.boolean(),order:r.number().nullable().optional()}),lc=r.record(r.string(),cc),uc=r.object({field_name:r.string().min(1),extractions:r.array(r.object({path:r.string().min(1),output_field:r.object({name:r.string().min(1),format:Ys.nullable().default(null),label:r.string().optional(),type:Ds})})).min(1).check(e=>{let t=new Set;Object.values(e.value).forEach(n=>{t.has(n.output_field.name)?e.issues.push({code:`custom`,message:`Output field names must be unique. The name ${n.output_field.name} exists more than once in your config.`,input:e.value}):t.add(n.output_field.name)})})}),dc=r.enum([`eq`,`neq`,`gt`,`gte`,`lt`,`lte`,`contains`,`matches`,`older_than_days`,`within_last_days`]),fc={eq:`equals`,neq:`not equals`,gt:`greater than`,gte:`greater than or equal`,lt:`less than`,lte:`less than or equal`,contains:`contains`,matches:`matches regex`,older_than_days:`older than (days)`,within_last_days:`within last (days)`},pc=[`eq`,`neq`,`gt`,`gte`,`lt`,`lte`,`contains`,`matches`,`older_than_days`,`within_last_days`],mc=[`eq`,`neq`],hc=r.object({type:r.literal(`vault`),connection:r.string().refine(e=>{let t=e.split(`_`)[0];return t!=null&&Ss.safeParse(t).success},{message:`Invalid vault connection string: expected the full provider-prefixed value (e.g. "slack_my-workspace") where the segment before the first "_" is a known provider name. Copy the string exactly as the vault lists it โ never strip the prefix.`})}),gc=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(hc)}).nullable().optional(),_c=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(hc).min(1,{message:`Provide your own credentials to use this object.`})},{error:`Provide your own credentials to use this object.`}),vc=r.object({strategy:r.enum([`first`]).default(`first`),connections:r.array(r.object({type:r.literal(`vault`),connection:r.string()})).max(0,{message:`This pipe does not support custom connectors.`})}).optional().nullable(),yc=r.enum(pc),bc=r.enum(mc),xc=r.enum([`failed`,`no_result`,`completed`,`skipped`]),Sc=r.object({property:r.literal(`value`).describe(`Compare the actual field value. Use operators: eq, neq, gt, gte, lt, lte, contains, matches, older_than_days, within_last_days.`),field_name:r.string().min(1,{message:`Provide a target field for the condition.`}).describe(`Name of a field from the input data or produced by another pipe in the payload.`),operator:yc.describe(`Comparison operator: "eq", "neq", "gt", "gte", "lt", "lte", "contains", "matches" (regex), "older_than_days" / "within_last_days" (relative to now, evaluated at run time โ for date/datetime fields).`),value:r.union([r.number(),r.string(),r.boolean(),r.null()]).describe(`The value to compare the field against. Must be a primitive (string, number, boolean, or null). For older_than_days/within_last_days it is the number of days.`).check(e=>{(e.value===void 0||e.value===``)&&e.issues.push({code:`custom`,input:e.value,message:`Provide a value to compare against.`}),typeof e.value==`object`&&e.value!==null&&e.issues.push({code:`custom`,input:e.value,message:`Conditions can only be defined on primitive fields. To apply a condition on a JSON value, expand it into an object first.`})})}),Cc=r.object({property:r.literal(`status`).describe(`Compare the field resolution status instead of its value. Use operators: eq, neq.`),field_name:r.string().min(1).describe(`Name of a field from the input data or produced by another pipe in the payload.`),operator:bc.describe(`Status comparison operator: "eq" or "neq".`),value:xc.describe(`Field status to compare against: "completed", "no_result", "failed", or "skipped".`)}),wc=r.object({logic:r.enum([`and`,`or`]).describe(`"and" = all conditions must match. "or" = any condition matches.`),conditions:r.array(r.discriminatedUnion(`property`,[Sc,Cc])).min(1).describe(`Array of conditions to evaluate. Each condition checks either a field value or its resolution status.`)}).describe(`Condition block. All conditions are combined with the chosen logic (and/or).`),Tc=r.object({logic:r.enum([`and`,`or`]).describe(`"and" = all conditions must match. "or" = any condition matches.`),conditions:r.array(Sc).min(1).describe(`Array of value conditions to evaluate.`)}).describe(`Condition block. All conditions are combined with the chosen logic (and/or).`),Ec=r.object({action:r.enum([`run`]).default(`run`).describe(`What to do when conditions match. Defaults to "run" (run the pipe only on matching records). Reserved for future extension.`),when:wc}).describe(`Run-if gate for a pipe. When set, the pipe only runs on records matching the conditions. Example: { "when": { "logic": "and", "conditions": [{ "property": "status", "field_name": "work_email", "operator": "neq", "value": "no_result" }] } }`),Dc=[`if`,`elsif`,`else`,`endif`,`unless`,`endunless`,`for`,`endfor`,`break`,`continue`,`output`],Oc=[`json`,`escape`,`escape_once`,`default`,`upcase`,`downcase`,`size`,`join`,`first`,`last`,`replace`,`truncate`,`strip`,`newline_to_br`,`url_encode`],kc=/^[A-Z][A-Z0-9_]*$/,Ac=/^[A-Z][A-Z0-9_]*$/,jc=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Mc=new Set(Dc),Nc=new Set(Oc),Pc=e=>`{${e}}`;var Fc=class extends u{constructor(e){super(),this.values=e}liquidMethodMissing(e){let t=String(e);if(!kc.test(t))throw Error(`Secret key "${t}" must be uppercase letters, digits, and underscores (e.g. SECRETS.API_KEY).`);if(!(t in this.values))throw Error(`Missing secret: SECRETS.${t}`);return this.values[t]}},Ic=class extends u{constructor(e){super(),this.values=e}liquidMethodMissing(e){let t=String(e);if(!Ac.test(t))throw Error(`Constant key "${t}" must be uppercase letters, digits, and underscores (e.g. CONSTANTS.PROMO).`);if(!(t in this.values))throw Error(`Missing constant: CONSTANTS.${t}`);return this.values[t]}};function Lc(e){let t=e.trim();if(!t)throw Error(`Empty {% output %} tag โ expected at least a name (e.g. {% output rec, type: "string", description: "..." %}).`);let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*(?:,|$)/);if(!n||!n[1])throw Error(`Invalid {% output %} tag โ expected a name as the first argument, got: ${t}`);let r=n[1];if(!jc.test(r))throw Error(`Invalid {% output %} tag name "${r}" โ must start with a letter or underscore and contain only letters, digits, and underscores.`);let i=t.slice(n[0].length).trim(),a={},o=/([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(?:"((?:\\.|[^"\\])*)"|'((?:\\.|[^'\\])*)'|(true|false))\s*(?:,|$)/g,s=0,c;for(;(c=o.exec(i))!==null;){s=c.index+c[0].length;let e=c[1],t=c[2]??c[3]??c[4];c[4]===void 0?a[e]=t:a[e]=t===`true`}if(i&&s<i.length)throw Error(`Invalid {% output %} tag โ could not parse arguments after "${i.slice(s)}". Expected key: "value" pairs.`);let l=a.type;if(typeof l!=`string`||!l)throw Error(`{% output ${r} %} tag is missing required "type" argument (e.g. type: "string").`);let u=a.description;if(typeof u!=`string`||!u)throw Error(`{% output ${r} %} tag is missing required "description" argument (e.g. description: "What this means.").`);return{name:r,type:l,description:u,required:typeof a.required==`boolean`?a.required:!0,format:typeof a.format==`string`?a.format:null,schemaRef:typeof a.schema==`string`?a.schema:null}}function gee(){let e=new d({strictVariables:!1,strictFilters:!0,jsTruthy:!0,greedy:!1,catchAllErrors:!1,ownPropertyOnly:!0,outputEscape:(e=>typeof e==`object`&&e&&!(e instanceof u)?JSON.stringify(e):e)});e.registerTag(`output`,{parse(e,t){let n=Lc(e.args);this.outputDecl=n},render(e,t){let n=this.outputDecl;if(!(e.globals&&e.globals.__outputAllowed))throw Error(`{% output %} is not allowed in this template (referenced output "${n.name}").`);t.write(Pc(n.name))}});for(let t of Object.keys(e.tags))Mc.has(t)||delete e.tags[t];for(let t of Object.keys(e.filters))Nc.has(t)||delete e.filters[t];return e}let Rc=null;function zc(){return Rc||=gee(),Rc}function Bc(e){let t={};for(let[n,r]of Object.entries(e.inputs??{}))t[n]=typeof r==`string`?r.trim():r;return t.SECRETS=new Fc(e.secrets??{}),t.CONSTANTS=new Ic(e.constants??{}),t}async function _ee(e,t,n={}){let r=zc(),i=n.renderLimitMs??250,a=Bc(t),o={globals:{__outputAllowed:n.outputAllowed===!0},renderLimit:i},s=await Promise.race([r.parseAndRender(e,a,o),new Promise((e,t)=>setTimeout(()=>t(Error(`Liquid render exceeded ${i}ms.`)),i))]);return String(s)}function vee(e,t,n={}){let r=zc(),i=n.renderLimitMs??250,a=Bc(t),o=r.parseAndRenderSync(e,a,{globals:{__outputAllowed:n.outputAllowed===!0},renderLimit:i});return String(o)}function yee(e){return zc().parse(e)}function Vc(e){let t=zc().parse(e),n={scopeStack:[],guardStack:[],inputs:new Map,secrets:new Set,constants:new Set,outputs:[],forDepth:0};Hc(t,n);let r={};for(let[e,t]of n.inputs)r[e]={required:t.unguardedRefs>0};return{inputs:r,secrets:[...n.secrets],constants:[...n.constants],outputs:n.outputs}}function Hc(e,t){for(let n of e)bee(n,t)}function bee(e,t){let n=e;if(n.value&&typeof n.value==`object`&&`filters`in n.value&&`initial`in n.value){Uc(n.value,t,!1);return}if(typeof n.name==`string`){xee(n,t);return}}function xee(e,t){switch(e.name){case`for`:See(e,t);return;case`if`:case`unless`:Cee(e,t);return;case`output`:wee(e,t);return;case`break`:case`continue`:return;default:throw Error(`Unhandled liquid tag in analyzer: ${e.name}`)}}function See(e,t){if(t.forDepth+=1,t.forDepth>3)throw Error(`Liquid template exceeds maximum nested {% for %} depth of 3.`);e.collection!==void 0&&e.collection!==null&&Wc(e.collection,t,!1);let n=typeof e.variable==`string`?e.variable:null;n&&t.scopeStack.push(n),Hc(Array.isArray(e.templates)?e.templates:[],t),n&&t.scopeStack.pop(),Hc(Array.isArray(e.elseTemplates)?e.elseTemplates:[],t),--t.forDepth}function Cee(e,t){let n=Array.isArray(e.branches)?e.branches:[];e.name;for(let e=0;e<n.length;e++){let r=n[e],i=r.value,a=null;e===0&&i&&typeof i==`object`&&(a=Kc(i.initial)),a&&t.guardStack.push(a),i&&typeof i==`object`&&Uc(i,t,!1),Hc(r.templates,t),a&&t.guardStack.pop()}Hc(Array.isArray(e.elseTemplates)?e.elseTemplates:[],t)}function wee(e,t){let n=e.outputDecl;if(!n){let t=e.token?.args;typeof t==`string`&&(n=Lc(t))}if(!n)throw Error(`Internal: {% output %} tag missing parsed declaration.`);t.outputs.push({name:n.name,type:n.type,description:n.description,required:n.required,format:n.format,schemaRef:n.schemaRef??void 0})}function Uc(e,t,n){let r=e.filters.some(e=>e.name===`default`),i=n||r;for(let n of e.initial.postfix)qc(n)&&Gc(n,t,i);for(let n of e.filters)for(let e of n.args)Tee(e,t)}function Wc(e,t,n){qc(e)&&Gc(e,t,n)}function Tee(e,t){if(Array.isArray(e)){let n=e[1];n&&Wc(n,t,!1)}else Wc(e,t,!1)}function Gc(e,t,n){let r=e.props;if(r.length===0)return;let i=r[0];if(!i||!Jc(i))return;let a=i.content;if(t.scopeStack.includes(a))return;if(a===`SECRETS`){let e=r[1];if(!e||!Jc(e))throw Error(`Invalid SECRETS reference โ expected SECRETS.KEY (got ${Zc(r)}).`);let n=e.content;if(!kc.test(n))throw Error(`Invalid SECRETS key "${n}" โ must be uppercase letters, digits, and underscores (e.g. SECRETS.API_KEY).`);t.secrets.add(n);return}if(a===`CONSTANTS`){let e=r[1];if(!e||!Jc(e))throw Error(`Invalid CONSTANTS reference โ expected CONSTANTS.KEY (got ${Zc(r)}).`);let n=e.content;if(!Ac.test(n))throw Error(`Invalid CONSTANTS key "${n}" โ must be uppercase letters, digits, and underscores (e.g. CONSTANTS.PROMO).`);t.constants.add(n);return}let o=n||t.guardStack.includes(a),s=t.inputs.get(a)??{unguardedRefs:0,guardedRefs:0};o?s.guardedRefs+=1:s.unguardedRefs+=1,t.inputs.set(a,s)}function Kc(e){if(e.postfix.length===1){let t=e.postfix[0];if(t&&qc(t)&&t.props.length===1){let e=t.props[0];if(e&&Jc(e))return e.content}}if(e.postfix.length===3){let[t,n,r]=e.postfix;if(t&&n&&r&&qc(t)&&t.props.length===1){let e=t.props[0];if(e&&Jc(e)&&Yc(n)&&Xc(r,[`==`,`!=`]))return e.content}}return null}function qc(e){return e.kind===f.PropertyAccess}function Jc(e){return!!e&&typeof e==`object`&&e.kind===f.Word}function Yc(e){if(e.kind!==f.Literal)return!1;let t=e.literal;return t===`nil`||t===`null`}function Xc(e,t){return e.kind===f.Operator?t.includes(e.operator):!1}function Zc(e){let t=[];for(let n of e)n&&Jc(n)?t.push(n.content):t.push(`?`);return t.join(`.`)}const Qc=`default`;function $c(e){let t=e.split(`_`),n=t[0],r=t.slice(1).join(`_`);if(!n)throw Error(`connection string of invalid format`);try{return{provider:Ss.parse(n),id:r}}catch{throw Error(`Connection string ${e}: Failed to parse provider name.`)}}function el(e){return`${e.provider}_${e.id}`}const tl=new p;function nl(e){return tl.validateSchema(e)}function rl(e){let t=!1;return m(e,{},e=>{e.type&&[`string`,`number`,`boolean`,`integer`,`null`].includes(e.type)&&(t=!0),e.type===`object`&&e.properties&&Object.keys(e.properties).length>0&&(t=!0),e.type===`array`&&e.items&&(t=!0)}),!t}function il(e){try{return JSON.parse(e)}catch{}return JSON.parse(ll(e))}function al(e){try{return il(e)}catch{return}}const ol=/[A-Za-z_$]/,sl=/[\w$]/,cl=/\s/;function ll(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`||i===`'`){let a=i,o=``;for(n++;n<r&&e[n]!==a;){if(e[n]===`\\`){o+=`\\${e[n+1]??``}`,n+=2;continue}o+=e[n],n++}n++,t+=JSON.stringify(ul(o));continue}if(ol.test(i)){let i=n;for(;i<r&&sl.test(e[i]);)i++;let a=e.slice(n,i),o=i;for(;o<r&&cl.test(e[o]);)o++;t+=e[o]===`:`?JSON.stringify(a):a,n=i;continue}if(i===`,`){let t=n+1;for(;t<r&&cl.test(e[t]);)t++;if(e[t]===`}`||e[t]===`]`){n++;continue}}t+=i,n++}return t}function ul(e){let t=``;for(let n=0;n<e.length;n++){if(e[n]!==`\\`){t+=e[n];continue}let r=e[++n];switch(r){case`n`:t+=`
|
|
68
|
+
`;break;case`t`:t+=` `;break;case`r`:t+=`\r`;break;case`b`:t+=`\b`;break;case`f`:t+=`\f`;break;case`v`:t+=`\v`;break;case`0`:t+=`\0`;break;case`u`:{let r=e.slice(n+1,n+5);/^[0-9a-fA-F]{4}$/.test(r)?(t+=String.fromCharCode(Number.parseInt(r,16)),n+=4):t+=`u`;break}default:t+=r??``;break}}return t}const v=(e,t=`Add a ${e} connection to enable this field`)=>n=>(n.connector?.connections??[]).some(t=>t?.connection?.startsWith(`${e}_`))?{disabled:!1}:{disabled:!0,message:t},dl=(e,t)=>n=>{let r=e(n);return r!=null&&r!==``?{disabled:!1}:{disabled:!0,message:t}},fl=(...e)=>t=>{for(let n of e){let e=n(t);if(e.disabled)return e}return{disabled:!1}},pl=(...e)=>t=>{let n={disabled:!0,message:`No condition matched`};for(let r of e){let e=r(t);if(!e.disabled)return e;n=e}return n},ml=[`google-low`,`openai-high`,`openai-medium`,`anthropic-high`,`anthropic-low`],hl={"google-low":{label:`Gemini 3.8 Flash`,provider:`gemini`,rateLimitOperation:`gemini_35_flash`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"openai-high":{label:`GPT 5.6 Sol`,provider:`openai`,rateLimitOperation:`openai_gpt-5`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"openai-medium":{label:`GPT 5.6 Terra`,provider:`openai`,rateLimitOperation:`openai_gpt-5-6-terra`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"anthropic-high":{label:`Claude Opus 5`,provider:`anthropic`,rateLimitOperation:`anthropic_opus`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`},"anthropic-low":{label:`Claude Sonnet 5`,provider:`anthropic`,rateLimitOperation:`anthropic_sonnet`,rateLimitRatio:1,allowManagedConnection:!0,billingMode:`always`}},gl=.03,_l=.3,vl=100,yl=100,bl={"google-low":{inputPer1M:.75,outputPer1M:3.75,cachedInputPer1M:.075},"openai-high":{inputPer1M:5,outputPer1M:30,cachedInputPer1M:.5,cachedWritePer1M:6.25},"openai-medium":{inputPer1M:2,outputPer1M:12,cachedInputPer1M:.2,cachedWritePer1M:2.5},"anthropic-high":{inputPer1M:5,outputPer1M:25,cachedInputPer1M:.5,cachedWritePer1M:6.25},"anthropic-low":{inputPer1M:2,outputPer1M:10,cachedInputPer1M:.2,cachedWritePer1M:2.5}},xl=`openai-medium`,Sl=`openai-medium`,Cl=`openai-medium`;function wl(e){let t=hl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return[t.provider]}function Tl(e){let t=hl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return[{provider:t.provider,rateLimitRatio:t.rateLimitRatio,rateLimitOperation:t.rateLimitOperation,allowManagedConnection:t.allowManagedConnection}]}function El(){let e=new Set;for(let t of ml)e.add(hl[t].provider);return[...e]}function Dl(e){return Object.keys(e).some(e=>ml.some(t=>e.endsWith(`-in-${t}`)||e.endsWith(`-out-${t}`)))}function Ol(e,t){return e/1e6*(1+_l)/gl*t}function kl(e){let t=bl[e];if(!t)throw Error(`Unknown AI model: ${e}`);return{in:Ol(t.inputPer1M,100),out:Ol(t.outputPer1M,100)}}function Al(e,t){let n=Math.round(_l*100);return`Billed per 100 ${e} tokens at ${Number(t.toPrecision(4))} credits/block (managed keys include a ${n}% margin over provider cost).`}function jl(e){let t={};for(let n of ml){let r=hl[n],i=kl(n);t[`${e}-in-${n}`]={credits:{default:i.in},allowManagedConnection:!0,provider:r.provider,mode:r.billingMode,note:Al(`input`,i.in)},t[`${e}-out-${n}`]={credits:{default:i.out},allowManagedConnection:!0,provider:r.provider,mode:r.billingMode,note:Al(`output`,i.out)}}return t}function Ml(e,t){return{input:`${t}-in-${e}`,output:`${t}-out-${e}`}}function Nl(e,t){let n=Ml(t.model,t.prefix);return[{billableOperation:n.input,quantity:e.count*Math.ceil(t.inputTokens/100)},{billableOperation:n.output,quantity:e.count*Math.ceil(t.outputTokens/100)}]}function Pl(e){let t=bl[e];return!t?.cachedInputPer1M||t.inputPer1M<=0?1:t.cachedInputPer1M/t.inputPer1M}function Fl(e){let t=bl[e];return!t?.cachedWritePer1M||t.inputPer1M<=0?1:t.cachedWritePer1M/t.inputPer1M}function Il(e,t){let n=Math.max(0,e.inputTokens);if(!t)return n;let r=Pl(t),i=Fl(t);if(r===1&&i===1)return n;let a=Math.max(0,e.inputTokenDetails?.cacheReadTokens??0),o=Math.max(0,e.inputTokenDetails?.cacheWriteTokens??0);if(a===0&&o===0)return n;let s=e.inputTokenDetails?.noCacheTokens??Math.max(0,n-a-o);return Math.round(s+o*i+a*r)}var Ll=class{carriedInput=0;carriedOutput=0;addUsage(e,t){this.carriedInput+=Il(e,t),this.carriedOutput+=Math.max(0,e.outputTokens)}drainBlocks(){let e=Math.floor(this.carriedInput/100),t=Math.floor(this.carriedOutput/100);return this.carriedInput-=e*100,this.carriedOutput-=t*100,{inBlocks:e,outBlocks:t}}flush(){let e=+(this.carriedInput>0),t=+(this.carriedOutput>0);return this.carriedInput=0,this.carriedOutput=0,{inBlocks:e,outBlocks:t}}};function Rl(e){if(!e?.requires)return;let t=[];e.requires.connection&&t.push(v(e.requires.connection));for(let n of e.requires.fields??[])t.push(dl(e=>n.split(`.`).reduce((e,t)=>e==null?e:e[t],e),`Set ${n} first`));if(t.length!==0)return t.length===1?t[0]:fl(...t)}function zl(e,t,n){let i={exampleValue:null,jsonSchema:null},a=t.fieldAnnotations.annotations[e];if(a?.json_metadata?.example_value&&(i.exampleValue=a.json_metadata.example_value||null),a?.json_metadata?.schema&&(i.jsonSchema=a.json_metadata.schema||null),i.exampleValue&&i.jsonSchema||!t.resolvedFieldNames[e])return i;let o=bs(e,n,t),s=_s(o.fieldName)?_(o.fieldName):null;return s?.jsonMeta?{jsonSchema:s.jsonMeta.zodSchema?r.toJSONSchema(s.jsonMeta.zodSchema):null,exampleValue:s.jsonMeta.exampleValue||null}:i}const Bl=r.registry();{let e=Bl._map,t=Bl.get.bind(Bl);Bl.get=n=>{let r=n;for(;r;){let t=e.get(r);if(typeof t==`function`)return t;r=r?._zod?.parent}return t(n)}}const y=Bl,Vl=Bl,Hl=Bl,Ul=r.registry(),Wl=e=>e,Gl={text_input:r.coerce.string(),textarea_input:r.string(),prompt_input:r.object({template:r.string(),json_schemas:r.record(r.string(),r.record(r.string(),r.unknown()))}),template_input:r.string(),tagged_text_input:r.coerce.string(),boolean_input:r.boolean(),nullable_boolean_input:r.boolean().nullable(),select_input:r.string(),multi_select_input:r.array(r.string()),async_multi_select_input:r.array(r.string()),int_input:r.coerce.number().int(),number_input:r.coerce.number(),min_max_int_input:r.object({min:r.number().nullable().default(null),max:r.number().nullable().default(null)}),include_exclude_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),include_exclude_select_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),async_include_exclude_select_input:r.object({include:r.array(r.string()).default([]),exclude:r.array(r.string()).default([])}),exact_range_input:r.record(r.string(),r.number().nullable()),range_input:r.object({from:r.number().nullable(),to:r.number().nullable()}),date_range_input:r.record(r.string(),r.string()),multi_create_input:r.array(r.string()),single_create_input:r.string(),property_list_input:r.array(r.object({property:r.string().min(1)})),ordered_multi_create_input:r.array(r.string()),tagged_ordered_multi_create_input:r.array(r.string()),loose_object_input:r.record(r.string(),r.string()),connector_input:r.object({connections:r.array(r.object({type:r.string(),connection:r.string()}))}).nullable(),providers_input:r.array(r.object({provider:r.string()})),json_extraction_input:r.record(r.string(),r.unknown()),pipes_run_if_input:r.record(r.string(),r.unknown()).nullable(),condition_block_input:r.record(r.string(),r.unknown()).nullable(),fields_select_input:r.array(r.object({field_name:r.string()})),typed_fields_select_input:r.array(r.object({field_name:r.string(),type:r.enum(Es),format:r.enum(Js).nullable().optional(),alias:r.string().optional()})),field_select_input:r.object({field_name:r.string()}),output_field_input:r.object({alias:r.string(),enabled:r.boolean()}),json_schema_input:r.record(r.string(),r.unknown()),cursor_pagination_metadata:r.object({limit:r.number()}),context_select_input:r.union([r.string(),r.array(r.string())]),search_payload_input:r.looseObject({search_id:r.string()})},Kl=(e,t,n)=>{let r=[t.description||n,t.guide].filter(Boolean).join(` `);return r?e.describe(r):e.check(()=>{})},ql=(e,t)=>{let n=Gl.multi_create_input;return e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]),t.add(n,{type:`multi_create_input`,...e}),n},Jl=(e,t)=>{let n=Gl.single_create_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern)));let r=Kl(n,e);return t.add(r,{type:`single_create_input`,...e}),r},Yl=(e,t)=>{let n=Gl.property_list_input;e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]);let r=Kl(n,e),i=e.enabledIf??Rl(e.optionsDef);return t.add(r,{type:`property_list_input`,...e,enabledIf:i}),r},Xl=(e,t)=>{let n=Gl.ordered_multi_create_input;return e.maxItems&&(n=n.max(e.maxItems)),n=e.minItems?n.min(e.minItems):n.default([]),t.add(n,{type:`ordered_multi_create_input`,...e}),n},Zl=/^\s*\{\{\s*[a-zA-Z_][a-zA-Z0-9_.]*(?:\s*\|\s*[^}]+)?\s*\}\}\s*$/,Ql=/\{\{|\{%/,$l=(e,t)=>{let n=Gl.tagged_ordered_multi_create_input;e.maxItems&&(n=n.max(e.maxItems)),n=n.check(e=>{let t=e;(t.value??[]).forEach((e,n)=>{let r=Zl.test(e),i=Ql.test(e);!r&&i&&t.issues.push({code:`custom`,input:e,path:[n],message:`Each entry must be either plain text or a single field reference โ not mixed.`})})}),n=e.minItems?n.min(e.minItems):n.default([]),n=Kl(n,e);let r={type:`tagged_ordered_multi_create_input`,...e};if(t===y){let i=t=>{let n=t.validationContext,i=n?Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).filter(([t,n])=>!e.expectedTagType||n.type===e.expectedTagType).map(([e,t])=>({...t,resolvedName:e})):[];return{...r,inputFields:i}};return i.staticMeta={...r,inputFields:[]},t.add(n,i),n}return t.add(n,r),n},eu=(e,t)=>{let n=Gl.loose_object_input;n=n.check(t=>{let n=t,r=Object.entries(n.value??{});e.minKeys!=null&&r.length<e.minKeys&&n.issues.push({code:`custom`,input:n.value,message:`Add at least ${e.minKeys} ${e.keyLabel?.toLowerCase()??`entr`}${e.keyLabel?`s`:`ies`}.`}),e.maxKeys!=null&&r.length>e.maxKeys&&n.issues.push({code:`custom`,input:n.value,message:`Use at most ${e.maxKeys} ${e.keyLabel?.toLowerCase()??`entr`}${e.keyLabel?`s`:`ies`}.`}),r.forEach(([e,t])=>{Mu({value:t,issues:n.issues},!1,[e])})}),n=n.default({}),n=Kl(n,e);let r={type:`loose_object_input`,...e},i=e=>{let t=e.validationContext,n=t?Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e.hash).map(([e,t])=>({...t,resolvedName:e})):[];return{...r,inputFields:n}};return i.staticMeta={...r,inputFields:[]},t.add(n,i),n},tu=(e,t)=>{let n=e.maxItems||200,r=Kl(Gl.include_exclude_input.check(e=>{e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`})}),e);return t.add(r,{type:`include_exclude_input`,...e}),r},nu=()=>{let e=uc;return y.add(e,e=>{let t=e.validationContext;return{label:``,description:``,type:`json_extraction_input`,fields:Object.entries(t.fieldDefinitions).filter(([e,t])=>e.toLowerCase()!==`id`&&t.type===`json`).map(([e,n])=>{let{jsonSchema:r,exampleValue:i}=zl(e,t,n)||{};return{fieldName:e,fieldLabel:n.label,schema:r||null,exampleValue:i||null}}),path:`config.json_extraction`,groupPath:`config.json_extraction`,sectionKey:`general`}}),e},ru=(e,t)=>{let n=r.array(r.object({provider:r.enum(e.availableProviders)})).max(e.maxItems||99).min(1).default(e.defaultProviders),i=e.availableProviders.filter(t=>!e.deprecatedProviders?.includes(t)).map(t=>{let n=e.providerCredits?.[t];return{value:t,label:$t[t].label,widgets:{provider_logo:{provider:t},...typeof n==`number`?{pricing:{credits:n}}:{}}}});return t.add(n,{label:`Provider sequence`,description:``,path:`config.providers`,groupPath:`config.providers`,type:`providers_input`,options:i,defaultProviders:e.defaultProviders,maxItems:e.maxItems,sectionKey:e.sectionKey}),n},iu=(e,t)=>{let n=e.maxItems||200,r=e.optionsDef&&typeof e.optionsDef.options!=`function`?new Set(e.optionsDef.options.map(e=>e.value)):null,i=r?[...r].slice(0,8).join(`, `)+(r.size>8?`, โฆ`:``):``,a=Kl(Gl.include_exclude_select_input.check(e=>{if(e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`}),r)for(let t of[`include`,`exclude`])e.value[t].forEach((n,a)=>{r.has(n)||e.issues.push({code:`custom`,input:n,path:[t,a],message:`Invalid option value "${n}". Valid values include: ${i} โ resolve labels to values via autocomplete`})})}),e);return t.add(a,{type:`include_exclude_select_input`,...e}),a},au=(e,t)=>{let n=Kl(Gl.exact_range_input.check(t=>{e.min===void 0&&e.max===void 0||Object.values(t.value).filter(e=>e!==null).some(t=>e.min!=null&&t<e.min||e.max!=null&&t>e.max)&&t.issues.push({code:`custom`,input:t.value,message:`Values must be between ${e.min??`any`} and ${e.max??`any`}`})}),e);return t.add(n,{type:`exact_range_input`,...e}),n},ou=(e,t)=>{let n=r.object({from:r.number().optional().nullable(),to:r.number().optional().nullable()}).default({from:null,to:null}),i=n;(e.min!==void 0||e.max!==void 0)&&(i=n.check(t=>{Object.values(t.value).filter(e=>e!=null).every(t=>(e?.min==null||t>=e.min)&&(e.max==null||t<=e.max))||t.issues.push({code:`custom`,input:t.value,message:`Values must be between ${e.min??`any`} and ${e.max??`any`}`}),t.value.from&&t.value.to&&t.value.from>t.value.to&&t.issues.push({code:`custom`,input:t.value,message:`'From' value must be smaller than 'to' value.`})}));let a=Kl(i,e);return t.add(a,{type:`range_input`,...e}),a},su=(e,t)=>{let n=Kl(Gl.date_range_input.check(e=>{let t=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;for(let[n,r]of Object.entries(e.value))r&&!t.test(r)&&e.issues.push({code:`custom`,input:r,path:[n],message:`Must be an ISO datetime string`})}),e);return t.add(n,{type:`date_range_input`,...e}),n},cu=(e,t)=>{let n=Kl(Gl.boolean_input.default(e.defaultValue),e);return t.add(n,{...e,required:!1,type:`boolean_input`}),n},lu=(e,t)=>{let n=Kl(Gl.nullable_boolean_input.default(e.defaultValue),e);return t.add(n,{...e,required:!1,type:`nullable_boolean_input`,defaultValue:e.defaultValue}),n},uu=(e,t)=>{let n=Gl.text_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern)));let r=Kl(n,e);return t.add(r,{type:`text_input`,...e}),r},du=(e,t)=>{let n=Gl.textarea_input;e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength));let r=Kl(n,e);return t.add(r,{type:`textarea_input`,...e}),r},fu=(e,t,n=`pipe_io`)=>{let i=r.object({alias:r.string().default(``).describe(`Rename this output field. Leave empty to use default name.`),enabled:r.boolean().default(!0).describe(`Whether to include this field in the output.`)}).describe(`Output field '${e.fieldName}'`);return t.add(i,{type:`output_field_input`,label:`Rename *${e.fieldName}*`,placeholder:e.fieldName,path:`config.output_fields.${e.fieldName}`,description:void 0,groupPath:`config.output_fields`,sectionKey:n}),i.default({alias:``,enabled:!0})},pu=(e,t)=>r.unknown().check(e=>{t(e.value)&&e.issues.push({code:`custom`,input:e.value,message:`Required`})}).pipe(e),mu=(e,t)=>{let n=Kl(pu(Gl.int_input.check(t=>{e.min!=null&&t.value<e.min&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at least ${e.min}`}),e.max!=null&&t.value>e.max&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at most ${e.max}`})}),e=>e==null),e);return t.add(n,{...e,type:`int_input`}),n},hu=(e,t)=>{let n=Kl(pu(Gl.number_input.check(t=>{e.min!=null&&t.value<e.min&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at least ${e.min}`}),e.max!=null&&t.value>e.max&&t.issues.push({code:`custom`,input:t.value,message:`Value must be at most ${e.max}`})}),e=>e===void 0),e);return t.add(n,{...e,type:`number_input`}),n},gu=(e,t)=>{let n=Gl.json_schema_input;return n.check(e=>{nl(e.value)||e.issues.push({code:`custom`,input:e.value,message:`JSON schema is invalid. Check your input.`})}),e.allowEmpty||(n=n.check(e=>{rl(e.value)&&e.issues.push({code:`custom`,message:`JSON Schema must define a meaningful value. Can not be an empty object or array.`,input:e.value})})),t.add(n,{...e,type:`json_schema_input`}),n},_u=(e,t)=>{let n=e.options.map(e=>e.value),r=new Set([...n,``]),i=Gl.select_input.check(t=>{if(t.value===``){e.required&&t.issues.push({code:`custom`,input:t.value,message:`Required`});return}r.has(t.value)||t.issues.push({code:`custom`,input:t.value,message:`Must be one of: ${[...r].filter(e=>e).join(`, `)}`})}),a=Kl(e.defaultValue?i.default(e.defaultValue):i,e);return t.add(a,{type:`select_input`,...e}),a},vu=(e,t,n)=>{let r=Kl(Gl.search_payload_input.check(e=>{if(!e.value?.search_id){e.issues.push({code:`custom`,input:e.value,message:`Required`});return}let t=n?.safeParse(e.value);if(t&&!t.success)for(let n of t.error.issues)e.issues.push({code:`custom`,input:e.value,message:n.message,path:n.path})}),e);return t.add(r,{...e,type:`search_payload_input`,required:!0}),r},yu=({billableOperations:e,...t},n)=>{let i=r.enum(ml).default(t.defaultValue||`google-low`);return n.add(i,{type:`select_input`,options:ml.map(t=>{let n=Object.keys(e).find(e=>e.endsWith(`-in-${t}`)),r=Object.keys(e).find(e=>e.endsWith(`-out-${t}`)),i=n?e[n]:void 0,a=r?e[r]:void 0;if(!i||!a)throw Error(`Unable to find token billing info for model ${t}`);return{label:hl[t].label,value:t,widgets:{logo:{url:$t[hl[t].provider].logoUrl},token_pricing:{inputPerBlock:i.credits.default,outputPerBlock:a.credits.default,blockSize:100}}}}),required:!0,description:``,label:`AI Models`,...t}),i},bu=(e,t)=>{let n=e.options.map(e=>e.value),i=new Set(n),a=r.array(r.enum(Array.from(i))).check(t=>{e.required&&t.value.length===0&&t.issues.push({code:`custom`,input:t.value,message:`Required`});let r=new Set;t.value.forEach((e,a)=>{i.has(e)?r.has(e)?t.issues.push({code:`custom`,input:e,path:[a],message:`Duplicate option: ${e}`}):r.add(e):t.issues.push({code:`custom`,input:e,path:[a],message:`Must be one of: ${n.join(`, `)}`})})}),o=e.maxItems?a.max(e.maxItems):a;return t.add(o,{type:`multi_select_input`,...e}),o},xu=(e,t)=>{let n=Gl.context_select_input.check(t=>{e.required&&(t.value===``||Array.isArray(t.value)&&t.value.length===0)&&t.issues.push({code:`custom`,input:t.value,message:`Required`})}),r=Kl(e.defaultValue?n.default(e.defaultValue):n,e),i=e.enabledIf??Rl(e.optionsDef);return t.add(r,{type:`context_select_input`,...e,enabledIf:i,options:[]}),r},Su=(e,t)=>{let n=Gl.min_max_int_input.check(t=>{for(let n of[`min`,`max`]){let r=t.value[n];if(r!=null){if(!Number.isInteger(r)){t.issues.push({code:`custom`,input:r,path:[n],message:`Must be an integer`});continue}(r<e.min||r>e.max)&&t.issues.push({code:`custom`,input:r,path:[n],message:`Must be between ${e.min} and ${e.max}`})}}});return t.add(n,{type:`min_max_int_input`,...e}),n},Cu=(e,t)=>{let n=Gl.async_multi_select_input.check(t=>{e.required&&t.value.length===0&&t.issues.push({code:`custom`,input:t.value,message:`Required`})});return e.maxItems&&(n=n.max(e.maxItems)),t.add(n,{type:`async_multi_select_input`,...e}),n},wu=(e,t)=>{let n=e.maxItems||200,r=Gl.async_include_exclude_select_input.check(e=>{e.value.include.length>n&&e.issues.push({code:`custom`,input:e.value.include,path:[`include`],message:`Array must contain at most ${n} element(s)`}),e.value.exclude.length>n&&e.issues.push({code:`custom`,input:e.value.exclude,path:[`exclude`],message:`Array must contain at most ${n} element(s)`})});return t.add(r,{type:`async_include_exclude_select_input`,...e}),r},b=()=>{let e=Ec.nullish();return y.add(e,e=>{let t=e.validationContext;return{label:``,description:``,type:`pipes_run_if_input`,groupPath:`run_if`,path:`run_if`,sectionKey:`pipe_io`,fields:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),e},Tu=e=>{let t=wc.nullish();return y.add(t,t=>{let n=t.validationContext;return{type:`condition_block_input`,...e,fields:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),t},Eu=e=>{let t=wc.nullish();return Hl.add(t,t=>{let n=t.validationContext;return{type:`condition_block_input`,...e,fields:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:t.label,format:t.format,type:t.type}))}}),t},Du=e=>{let{required:t=!0,...n}=e,r=Kl(Tc.nullable().check(e=>{let n=e;if(n.value===null){t&&n.issues.push({code:`custom`,input:n.value,message:`Add at least one condition.`});return}(n.value?.conditions??[]).forEach((e,t)=>{typeof e.value==`string`&&Mu({value:e.value,issues:n.issues},!1,[`conditions`,t,`value`])})}),n,"Condition block over the target sheet's columns. `field_name` is a LITERAL column name of the looked-up sheet (never templated); string `value`s may contain `{{ field }}` / `{{ SECRETS.KEY }}` / `{{ CONSTANTS.KEY }}` Liquid references resolved per row."+(t?``:" `null` means no filtering.")),i=n.optionsDef?{...n.optionsDef,enabledIf:n.optionsDef.enabledIf??Rl(n.optionsDef)}:void 0,a={type:`condition_block_input`,fields:[],fieldNameMode:`text`,properties:[`value`],...n,optionsDef:i,options:[]},o=e=>{let t=e.validationContext;return{...a,inputFields:Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e.hash).map(([e,t])=>({...t,resolvedName:e}))}};return o.staticMeta={...a,inputFields:[]},y.add(r,o),t?r:r.default(null)};function Ou(e,t){if(!t)return e;let n={...e};for(let[r,i]of Object.entries(t))n[r]=i===null?null:{...e[r]??{},...i};return n}function ku({fieldMetadata:e,store:t}){let n=e;if(e.type===`context_select_input`||e.type===`tagged_text_input`||(e.type===`condition_block_input`||e.type===`field_select_input`||e.type===`fields_select_input`||e.type===`typed_fields_select_input`||e.type===`property_list_input`)&&n.optionsDef){t.field_options??={};let r=t.field_options[e.path]?.options||[],i=n.optionsDef?.widgets;e.options=i?r.map(e=>({...e,widgets:{...i,...e.widgets??{}}})):r}return e}const Au=({schema:e,extractFromSchema:t,store:n,formResolvers:i,sectionMap:a,groupMap:o,pathMap:s})=>{let c={};function l(e){let t=e?._zod?.def?.type;return!(t===`optional`||t===`nullable`||t===`default`)}function u(e,d){let f=t(e),p=f?.required,m=f&&p===void 0&&d!==void 0?{...f,required:d}:f;if(m){let{sectionKey:e,groupPath:t,path:r}=m,l=a?.[e],u=o?.[t],d=s?.[r];if(!(l===null||u===null||d===null)){let r=d?{...m,label:d.label??m.label,description:d.description??m.description}:m;c[e]??={type:`section`,groups:[],metadata:{type:`form_section`,path:l?.path??e,label:l?.label,description:l?.description}};let a=c[e];if(!a)throw Error(`Section not defined`);let o=a.groups.find(e=>e.groupPath===t);if(o){let e=ku({fieldMetadata:r,store:n,formResolvers:i});e&&o.fields.push(e)}else{let e=ku({fieldMetadata:r,store:n,formResolvers:i});e&&a.groups.push({groupPath:t,fields:[e],type:`group`,label:u?.label,defaultExpand:!!u?.defaultExpand,description:u?.description,iconKey:u?.iconKey,order:u?.order})}}}if(typeof e==`object`&&`unwrap`in e&&typeof e.unwrap==`function`&&u(e.unwrap(),d),e instanceof r.ZodObject)for(let t of Object.values(e.shape))u(t,l(t))}u(e);for(let e of Object.values(c))e.groups=e.groups.filter(e=>e.fields.length!==0),e.groups.sort((e,t)=>(e.order??99)-(t.order??99));return Object.entries(c).filter(([,e])=>e.groups.length!==0).sort(([e],[t])=>(a?.[e]?.order??99)-(a?.[t]?.order??99)).map(([,e])=>e)};function ju(e,t,n,r){let i=t.filter(e=>e.format&&!Js.includes(e.format));i.length!==0&&e.issues.push({code:`custom`,input:n,path:r,message:`Unknown format on ${i.map(e=>`${e.name} ("${e.format}")`).join(`, `)}. Allowed: ${Js.join(`, `)}.`})}function Mu(e,t,n=[]){let r=e.value;if(!(typeof r!=`string`||!r))try{let i=Vc(r);!t&&i.outputs.length>0&&e.issues.push({code:`custom`,input:r,path:n,message:`{% output %} tags are not allowed in this field.`}),t&&i.outputs.length===0&&e.issues.push({code:`custom`,input:r,path:n,message:`At least one {% output %} tag is required, e.g. {% output result, type: "string", description: "..." %}`}),ju(e,i.outputs,r,n)}catch(t){e.issues.push({code:`custom`,input:r,path:n,message:t instanceof Error?t.message:String(t)})}}function Nu(e,t=[]){let n=e.value;if(typeof n!=`string`||!n)return;let r;try{r=Vc(n)}catch(r){e.issues.push({code:`custom`,input:n,path:t,message:r instanceof Error?r.message:String(r)});return}r.outputs.length===0&&e.issues.push({code:`custom`,input:n,path:t,message:`At least one {% output %} tag is required โ they define the search's columns, e.g. {% output post_url, type: "string", format: "url", description: "Canonical URL" %}`});let i=Object.keys(r.inputs);i.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`A search has no input row to read from, so field references are not supported here: ${i.map(e=>`{{ ${e} }}`).join(`, `)}. Write the value into the text, or use a dedicated config field (e.g. the domain allowlist).`});for(let[i,a]of[[`SECRETS`,r.secrets],[`CONSTANTS`,r.constants]])a.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`${i} are not resolved for searches: ${a.map(e=>`{{ ${i}.${e} }}`).join(`, `)}. Put the literal value in the template instead.`});ju(e,r.outputs,n,t);let a=r.outputs.filter(e=>e.type===`string`&&!e.format&&Pu.test(e.name));a.length>0&&e.issues.push({code:`custom`,input:n,path:t,message:`These outputs look like they need a format but declare none: ${a.map(e=>e.name).join(`, `)}. Add it to the tag โ e.g. format: "url" for a link, "date" for YYYY-MM-DD, "email" โ or format: "text" if the value genuinely is plain text.`})}const Pu=/_(url|at|date|email)$/,Fu=e=>{let t=(e.supportedTags??[]).includes(`output`),n=r.object({template:Kl(r.string().min(10).check(e=>Mu(e,t,[])),e,'Liquid prompt with `{{ field }}` input refs, `{{ field | default: "" }}` for optional refs, `{{ SECRETS.KEY }}` for secrets, `{{ CONSTANTS.KEY }}` for plaintext constants, and `{% output name, type: "string", description: "..." %}` to declare model outputs. Add `format` to an output whenever one fits (url, website_url, profile_url, email, date, datetime, phone, currency, percent, markdown, int, decimal) โ the format is what makes the column render as a link, a date or money instead of raw text, so a URL output without format: "url" lands as a plain string. Supports `{% if %}` / `{% for %}` control flow. Example: "Summarize {{ name }}. {% output summary, type: \\"string\\", description: \\"One-line summary\\" %} {% output source_url, type: \\"string\\", format: \\"url\\", description: \\"Page the summary came from\\" %}"'),json_schemas:r.record(r.string().min(1,`Schema name cannot be empty`),r.record(r.string(),r.any())).optional().describe(`JSON schemas for output fields with type="json". Keys are referenced via schema="<name>" in output tags.`)});return y.add(n,t=>{let n=t.validationContext;return{type:`prompt_input`,inputFields:Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).map(([e,t])=>({...t,resolvedName:e})),...e}}),n},Iu=e=>{let t=`Liquid template with \`{{ field }}\` input refs, \`{{ field | default: "" }}\` for optional refs, \`{{ SECRETS.KEY }}\` for secrets, \`{{ CONSTANTS.KEY }}\` for plaintext constants, and \`{% if %}\` / \`{% for %}\` control flow. Filters are hard-whitelisted โ ONLY: ${Oc.join(`, `)}; anything else (split, slice, โฆ) fails validation. Example: "Write to {{ name }} about {{ topic | default: \\"the project\\" }}."`,n=r.string();e.required&&(n=n.min(1)),e.maxLength&&(n=n.max(e.maxLength));let i=Kl(n.check(e=>Mu(e,!1,[])),e,t);return y.add(i,t=>{let n=t.validationContext;return{type:`template_input`,inputFields:Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).map(([e,t])=>({...t,resolvedName:e})),rows:e.rows||10,...e}}),i},x=e=>{let t=`${e.multiline?`Multi-line`:`Single-line`} ${e.expectedTagType} value, optionally containing \`{{ field }}\` Liquid input refs (use \`| default: ""\` for optional refs), \`{{ SECRETS.KEY }}\` for encrypted secrets, and \`{{ CONSTANTS.KEY }}\` for plaintext constants.`,n=r.coerce.string();e.minLength&&(n=n.min(e.minLength)),e.maxLength&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern))),n=n.check(e=>Mu(e,!1,[])),n=Kl(n,e,t);let i=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,a={type:`tagged_text_input`,...e,optionsDef:i,options:[]},o=t=>{let n=t.validationContext,r=Object.entries(n.fieldDefinitions).filter(([e,n])=>n.added_by.config_hash!==t.hash).filter(([t,n])=>n.type===e.expectedTagType).map(([e,t])=>({...t,resolvedName:e}));return{...a,inputFields:r}};return o.staticMeta={...a,inputFields:[]},y.add(n,o),n};function Lu(e,t){Bl.add(e,({userConnections:e,entry:n,kind:r})=>{let i=r===`search`||r===`stream`?n.allowsUserConnection?[n.provider]:[]:n.allowedUserConnectionProviders??[],a=new Set(i),o=e.filter(e=>a.has(e.provider));return{label:t===`required`?`Custom connection`:``,description:``,required:t===`required`,groupPath:`connector`,path:`connector`,connectorMode:t,type:`connector_input`,sectionKey:`pipe_io`,supportsUserConnections:a.size>0,filteredConnections:o.map(e=>({provider:e.provider,connection:el({id:e.public_id,provider:e.provider}),is_default:e.is_default??!1,ownership_level:e.ownership_level}))}})}const S=()=>{let e=_c;return Lu(e,`required`),e},C=()=>{let e=gc;return Lu(e,`optional`),e},Ru=()=>{let e=vc;return Lu(e,`disabled`),e},zu=()=>{let e=_c;return Lu(e,`required`),e},Bu=()=>{let e=gc;return Lu(e,`optional`),e},Vu=()=>{let e=vc;return Lu(e,`disabled`),e},Hu=()=>{let e=_c;return Lu(e,`required`),e},Uu=()=>{let e=gc;return Lu(e,`optional`),e},w=()=>{let e=vc;return Lu(e,`disabled`),e};function Wu(e,t){return Object.entries(t.fieldDefinitions).filter(([t,n])=>n.added_by.config_hash!==e&&t.toLowerCase()!==`id`).map(([e,t])=>({label:e,value:e,type:t.type,format:t.format}))}const T=e=>{let t=r.object({alias:r.string().describe(`Override field name mapping. Leave empty to use default.`)});return y.add(t,t=>{let n=t.validationContext;return{type:`select_input`,required:!1,sectionKey:`pipe_io`,defaultValue:void 0,placeholder:e.fieldName,options:Wu(t.hash??``,n),path:`config.input_fields.${e.fieldName}.alias`,label:`Assign *${e.fieldName}* to:`,description:``,groupPath:`config.input_fields`,multiple:!1}}),t.default({alias:``})},E=e=>ru(e,y),Gu=(e,t,n=y)=>{let r=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,i={type:`fields_select_input`,...e,optionsDef:r,options:[]},a=e=>{if(r)return{...i};let t=e.validationContext;return{...i,options:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({value:e,label:e,widgets:{field_type:{type:t.type}}}))}};a.staticMeta=i,n.add(t,a)},Ku=e=>{let t=Gl.fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu(e,t),t},qu=r.array(r.object({field_name:r.string(),alias:r.string().optional()})),Ju=e=>{let t=qu.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu({...e,withAlias:!0},t),t},Yu=e=>{let t=qu.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Gu({...e,withAlias:!0},t,Hl),t},Xu=e=>{let t=Gl.typed_fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});t=e.minItems?t.min(e.minItems):t.default([]);let n=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,r={type:`typed_fields_select_input`,...e,optionsDef:n,options:[]},i=e=>{if(n)return{...r};let t=e.validationContext;return{...r,options:Object.entries(t.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>{let n=typeof t.type==`function`?`unknown`:t.type;return{value:e,label:e,data:{type:String(n),...t.format?{format:String(t.format)}:{}},widgets:{field_type:{type:t.type}}}})}};return i.staticMeta=r,y.add(t,i),t},Zu=e=>{let t=Gl.field_select_input.check(t=>{e.required&&t.value.field_name.length<1&&t.issues.push({code:`custom`,input:t.value,message:`Select a field`})});e.required||(t=t.default({field_name:``})),t=Kl(t,e,"Reference to a single sheet column by name (`{ field_name }`).");let n=e.optionsDef?{...e.optionsDef,enabledIf:e.optionsDef.enabledIf??Rl(e.optionsDef)}:void 0,r={type:`field_select_input`,...e,optionsDef:n,options:[]},i=e=>{if(n)return{...r};let t=e.validationContext;return{...r,options:Object.entries(t.fieldDefinitions).filter(([t,n])=>t.toLowerCase()!==`id`&&n.added_by.config_hash!==e.hash).map(([e,t])=>({value:e,label:e,widgets:{field_type:{type:t.type}}}))}};return i.staticMeta=r,y.add(t,i),t},Qu=e=>{let t=Gl.fields_select_input.check(e=>{e.value.forEach((t,n)=>{t.field_name.length<1&&e.issues.push({code:`custom`,input:t.field_name,path:[n,`field_name`],message:`field_name must not be empty`})})});return t=e.minItems?t.min(e.minItems):t.default([]),Hl.add(t,t=>{let n=t.validationContext;return{type:`fields_select_input`,options:Object.entries(n.fieldDefinitions).filter(([e])=>e.toLowerCase()!==`id`).map(([e,t])=>({fieldName:e,fieldLabel:e,type:t.type})).map(e=>({value:e.fieldName,label:e.fieldLabel,widgets:{field_type:{type:e.type}}})),...e}}),t},$u=(e,t)=>{let n=t===`selection`?jt:t===`sheet`?Mt:Pt,i={label:`All rows`,value:{type:`all`}},a={label:`Specific rows by ID`,value:{type:`rows`,record_ids:[]}},o=t===`selection`?[a]:t===`sheet`?[i]:[i,a,{label:`Window of 10 rows`,value:{type:`window`,count:10}}],s=r.preprocess(e=>{if(typeof e!=`string`)return e;let t=e.trim();if(t===``)return;let n=al(t);return n===void 0?e:n},n).optional();return Hl.add(s,{type:`textarea_input`,rows:3,language:`json`,quickOptions:o,...e}),s},ed=e=>tu(e,y),td=e=>ql(e,y),nd=e=>Yl(e,y),rd=e=>Xl(e,y),id=e=>$l(e,y),ad=e=>eu(e,y),od=e=>iu(e,y),sd=e=>wu(e,y),cd=e=>au(e,y),ld=e=>su(e,y),ud=e=>cu(e,y),D=e=>fu(e,y),dd=e=>{let{groupPath:t,sectionKey:n=`pipe_io`,defaultName:r,nameInfo:i}=e;return{destination_field_name:fd({label:`Field name`,description:`Destination field name`,info:i??`Name of the field written to the destination sheet.`,placeholder:r,inputType:`text`,path:`config.destination_field_name`,groupPath:t,sectionKey:n}).nullable().default(``),destination_field_type:md({label:`Type`,info:`Field data type. Leave unset to infer it from the data.`,path:`config.destination_field_type`,groupPath:t,sectionKey:n,required:!1,options:Es.filter(e=>e!==`unknown`).map(e=>({value:e,label:e}))}).default(``),destination_field_format:md({label:`Format`,info:`Optional display format for the field.`,path:`config.destination_field_format`,groupPath:t,sectionKey:n,required:!1,options:Js.map(e=>({value:e,label:e}))}).default(``),destination_field_label:fd({label:`Label`,description:`Destination field label`,info:`Human-friendly column header. Defaults to the field name.`,inputType:`text`,path:`config.destination_field_label`,groupPath:t,sectionKey:n}).nullable().default(``)}},fd=e=>uu(e,y),pd=e=>du(e,y),md=e=>_u(e,y),hd=e=>yu(e,y),gd=e=>bu(e,y),_d=e=>mu(e,y),vd=e=>hu(e,y),yd=e=>gu(e,y),bd=e=>xu(e,y),xd=e=>{let{required:t=!1,...n}=e,r=Kl(Tc.nullable().check(e=>{let n=e;n.value===null&&t&&n.issues.push({code:`custom`,input:n.value,message:`Add at least one condition.`})}),n);return Vl.add(r,{type:`condition_block_input`,fields:[],fieldNameMode:`text`,properties:[`value`],...n}),t?r:r.default(null)},Sd=e=>{let t=r.object({template:Kl(r.string().min(10).check(e=>Nu(e,[])),e,'Liquid research brief. Plain text plus `{% output name, type: "string", description: "..." %}` tags that DECLARE the columns each result row will have; `type` may be string, number, boolean or json (with `schema: "<key>"` referencing `json_schemas`). Add `format` whenever one fits (url, website_url, profile_url, email, date, datetime, phone, currency, percent, markdown, int, decimal) โ it is what makes the column render as a link, a date or money instead of raw text. Supports `{% if %}` / `{% for %}`. Field references (`{{ name }}`), SECRETS and CONSTANTS are NOT supported โ a search has no input row. Example: "Find each product the company sells. {% output product_name, type: \\"string\\", description: \\"Official name\\" %} {% output product_url, type: \\"string\\", format: \\"url\\", description: \\"Product page\\" %}"'),json_schemas:r.record(r.string().min(1,`Schema name cannot be empty`),r.record(r.string(),r.any())).optional().describe(`JSON schemas for output fields with type="json". Keys are referenced via schema="<name>" in output tags.`)});return Vl.add(t,{type:`prompt_input`,inputFields:[],...e}),t},Cd=e=>yu(e,Vl),O=e=>ql(e,Vl),wd=e=>Yl(e,Vl),Td=e=>Xl(e,Vl),Ed=e=>Su(e,Vl),k=e=>tu(e,Vl),Dd=e=>iu(e,Vl),Od=e=>au(e,Vl),kd=e=>ou(e,Vl),Ad=e=>su(e,Vl),jd=e=>cu(e,Vl),Md=e=>lu(e,Vl),A=e=>fu(e,Vl,`pipe_io`),j=e=>uu(e,Vl),Nd=e=>du(e,Vl),Pd=e=>_u(e,Vl),Fd=e=>xu(e,Vl),M=e=>bu(e,Vl),Id=e=>Cu(e,Vl),N=e=>wu(e,Vl),P=e=>mu(e,Vl),Ld=e=>hu(e,Vl),Rd=e=>uu(e,Bl),zd=e=>du(e,Bl),Bd=e=>_u(e,Bl),Vd=e=>bu(e,Bl),Hd=e=>mu(e,Bl),Ud=e=>mu(e,Bl).nullish(),Wd=e=>cu(e,Bl),Gd=e=>xu(e,Bl),Kd=e=>yu(e,Bl),qd=(e,t)=>vu(e,Bl,t),Jd={sectionKey:`general`,groupPath:`config.general`},Yd=e=>uu({...Jd,inputType:`text`,...e},Wl(Ul)),Xd=e=>du({...Jd,...e},Wl(Ul)),Zd=e=>_u({...Jd,required:!1,...e},Wl(Ul)),Qd=e=>bu({...Jd,required:!1,...e},Wl(Ul)),$d=e=>ql({...Jd,...e},Wl(Ul)),ef=e=>cu({...Jd,...e},Wl(Ul)),tf=e=>mu({...Jd,...e},Wl(Ul)),nf=e=>uu(e,Bl),rf=e=>_u(e,Bl),af=e=>bu(e,Bl),of=e=>ql(e,Bl),sf=e=>Jl(e,Bl),cf=e=>mu(e,Bl),lf=e=>mu(e,Bl).nullish(),uf=e=>cu(e,Bl),F=e=>fu(e,Bl,`pipe_io`),df=()=>{let e=_c;return Lu(e,`required`),e},ff=()=>{let e=gc;return Lu(e,`optional`),e},pf=()=>{let e=vc;return Lu(e,`disabled`),e},I=e=>(e=e.check(e=>{let t=e.value,n=!1;for(let e in t)if(t[e]?.enabled){n=!0;break}n||e.issues.push({code:`custom`,input:e.value,message:`All output fields are disabled. Enable at least one output.`})}),e.optional()),L=e=>e.optional();function mf(e,t,n){return{next:{environment:t,pipes:e.orderedPipePayloads,fieldAnnotations:e.fieldAnnotations.annotations,validationContext:e},...n?{rowMigration:n}:{}}}var R=class extends Wt{producesDynamicFields(){return!1}evolveSchema(e){return{next:e}}getRecordQueueConfig(e){return null}getRowFilter(){return null}};function z(e){return Ht(e)}function hf(e,t){return Ut(e,t)}const gf=`env:change@1`,_f={},vf=r.object({effect_id:r.literal(gf),connector:w(),config:r.object({environment:Cs})}),yf=class extends R{effectId=gf;schema=vf;payload;billableOperations=_f;constructor(e){super(),this.payload=this.validatePayload(e)}getConnectionsRequirements(){return[]}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getFieldReferences(){return[]}},bf=vf,xf={effectId:gf,baseEffect:z(gf),label:`Change environment`,description:`Switch the sheet between production and sandbox.`,categories:[`internal`],tags:[],lifecycle:null,billableOperations:_f,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],selectionMode:`sheet`,lockingMode:`exclusive`,lockScope:`sheet`,catalogVisibility:`hidden`,defaultPayload:{effect_id:gf,connector:null,config:{environment:`production`}}},Sf=[`id`],Cf=e=>Sf.includes(e.trim().toLowerCase()),wf=`input`;function Tf({fieldDefinitions:e,fieldAnnotations:t={}}){let n=new Map;for(let[t,r]of Object.entries(e)){let e=r.added_by.config_hash||`input`,i=n.get(e)??{pipeIdx:r.added_by.pipe_index,fields:[]};i.fields.push([t,r]),n.set(e,i)}let r=e=>{let n=t[e]?.order;return typeof n==`number`&&Number.isFinite(n)?n:1/0},i=e=>Math.min(...n.get(e).fields.map(([e])=>r(e))),a=[...n.keys()].sort((e,t)=>{if(e===`input`)return-1;if(t===`input`)return 1;let r=i(e),a=i(t);return r===a?(n.get(e).pipeIdx||0)-(n.get(t).pipeIdx||0):r-a}),o={};for(let e of a)o[e]=n.get(e).fields.sort(([t,n],[i,a])=>{let o=r(t),s=r(i);if(o!==s)return o-s;if(e!==`input`&&n.is_primary_output!==a.is_primary_output)return n.is_primary_output?-1:1;let c=n.order??1/0,l=a.order??1/0;return c===l?t.localeCompare(i):c-l}).map(([e])=>e);return{groupOrder:a,fieldOrder:o}}const Ef=e=>typeof e.kind==`string`,Df=e=>Ef(e)?e:{kind:`field`,field:e},B=e=>({kind:`field`,field:e}),Of=(...e)=>({kind:`all`,of:e.map(Df)}),kf=(...e)=>({kind:`any`,of:e.map(Df)}),Af=e=>({kind:`optional`,field:e});function jf(e,t){switch(e.kind){case`optional`:return!0;case`field`:return t.has(e.field.resolvedName);case`all`:return e.of.every(e=>jf(e,t));case`any`:return e.of.some(e=>jf(e,t))}}function Mf(e){switch(e.kind){case`field`:return[{field:e.field,required:!0}];case`optional`:return[{field:e.field,required:!1}];case`all`:case`any`:return e.of.flatMap(Mf)}}function Nf(e,t){let n=Pf(e,t);return n.ok?{valid:!0,failedPipeInputField:null,failedRecordField:null}:{valid:!1,failedPipeInputField:n.field,failedRecordField:n.recordField}}function Pf(e,t){switch(e.kind){case`optional`:return{ok:!0};case`field`:{let n=t.fields[e.field.resolvedName];if(!n)throw Error(`Record field does not exist ${e.field.name} for requirement.`);return n.status===`completed`||n.status===`queued`?{ok:!0}:{ok:!1,field:e.field,recordField:n}}case`all`:for(let n of e.of){let e=Pf(n,t);if(!e.ok)return e}return{ok:!0};case`any`:{let n=null,r=!1;for(let i of e.of)try{let e=Pf(i,t);if(r=!0,e.ok)return{ok:!0};n=e}catch{}return r?n:{ok:!0}}}}function Ff(e,t){let n={pipeId:e,config:zt(t)};return Vt.hashObject(n)}function If(e,t){let n={};return Object.values(t).forEach(t=>{let r=t,i=e.fields[r.resolvedName];i?.value!=null&&(n[r.resolvedName]=i.value)}),Object.keys(n).length===0?null:Vt.hashObject(zt(n))}var V=class{validatePayload(e){try{return this.payloadSchema.parse(e)}catch(e){throw e instanceof n?Error(r.prettifyError(e)):e}}getSecretRequirements(){return[]}getConstantRequirements(){return[]}getBucketRequirements(){return[]}getRowConditionBlocks(){return[]}async getAgentContext(e){return null}catalogOutput(e,{isPrimaryOutput:t=!1,resolveFormat:n,resolveType:r}={resolveType:void 0,resolveFormat:void 0,isPrimaryOutput:!1}){return{name:e.name,enabled:!!this.payload.config?.output_fields?.[e.name].enabled,type:r||e.type,format:n||e.format,resolvedName:this.payload.config?.output_fields?.[e.name]?.alias||e.name,description:e.description,jsonMeta:e.jsonMeta,label:e.label,isCatalogFIeld:!0,order:`order`in e?e.order:void 0,isPrimaryOutput:t}}getOutputFields(){let e={};for(let[t,n]of Object.entries(this.getRawOutputFields()))n.enabled&&(e[t]=n);return e}get inputFields(){let e={};for(let{field:t}of Mf(this.getInputRequirement()))e[t.name]=t;return e}getConfigHashKey(){return Ff(this.payload.pipe_id,this.payload.config||{})}getInputHashKey(e){return If(e,this.inputFields)}};const H={EMAIL:`Email`,TEXT:`Text`,CHAT:`Chat`,PERSONAL_EMAIL:`Personal Email`,NAMES:`Names`,WORK_EMAIL:`Work Email`,WATERFALL:`Waterfall`,WEBSITE:`Website`,SCRAPE:`Scrape`,ADDRESS:`Address`,NEWS:`News`,LINKEDIN:`LinkedIn`,X:`X (Twitter)`,ADS:`Ads`,FINANCIAL_DATA:`Financial Data`,AI:`AI`,PHONE:`Phone Number`,NEW:`New`,BETA:`Beta`,PEOPLE_PROFILES:`People Profiles`,COMPANY_PROFILES:`Company Profiles`,EVENTS:`Events`,JSON:`Json`,FIELDS:`Fields`,LOGIC:`Logic`,DEPRECATED:`Deprecated โ`};function U(e,...t){return t.map(t=>({billableOperation:t,quantity:e.count}))}function Lf(e,t){return n=>{let r=e[n];if(!r)throw Error(`Missing billableOperation def for "${n}"`);return r.allowManagedConnection?t?.(r.provider)?0:r.credits.default:r.userConnectionCredits?.default??0}}function Rf(e,t,n=`sum`){let r=e.map(e=>e.quantity*t(e.billableOperation));return r.length===0?0:n===`max`?Math.max(...r):r.reduce((e,t)=>e+t,0)}function zf(e,t){let n={};for(let r of t)for(let t of Object.values(e)){if(!t||t.provider!==r)continue;let e=t.allowManagedConnection?t.credits.default:t.userConnectionCredits?.default;if(e!==void 0){n[r]=e;break}}return n}function Bf(e){return Mf(e).map(({field:e})=>e)}function Vf({recordField:e,value:t,resolvedBy:n,widgets:r}){return e.value=t,e.status=`completed`,e.resolved_by=n,e.widgets=r,e}function Hf({recordField:e}){return e.status=`pending`,e.resolved_by=null,e.value=null,e}function Uf({recordField:e,reason:t,resolvedBy:n,widgets:r={}}){return e.value=null,e.status=`no_result`,e.resolved_by=n,e.reason=t,e.widgets=r,e}function Wf(e,t,n){return e.value=null,e.status=`failed`,e.resolved_by=null,e.reason=t,e.resolved_by=n,e.widgets={},e}function Gf(e,t){return e.value=null,e.status=`skipped`,e.resolved_by=null,e.reason=t,e.widgets={},e}function Kf(e){return e.value=null,e.status=`processing`,e.resolved_by=null,e.widgets={},e}function W(e){return e.split(`@`)[0]}function G(e){return`/docs/pipe-catalog/${W(e)}/${e.split(`@`)[1]}`}function K(e,t){return{name:e.name,description:e.description,resolvedName:t?.input_fields?.[e.name]?.alias||e.name,type:e.type,label:e.label,format:e.format}}const q={MissingSecretError:class extends Error{constructor({providerName:e}){super(`Missing secret for ${e}`)}},HttpError:class extends Error{constructor({msg:e}){super(e)}}};function qf(e,t){return typeof t==`string`?t:t(e)}function Jf(e,t){return typeof t==`string`||t===null?t:t(e)}function Yf(e,t){let n={};for(let r of t){let t=!1;for(let i of e.pipes){let a=Zf(i,r);if(a){n[r]??={type:qf(e,a.type),format:Jf(e,a.format)},t=!0;break}}if(t)continue;let i=e.derivedInputFields[r];i&&(n[r]??={type:i.type,format:null})}return n}function Xf(e,t){for(let n of e.pipes){let r=Zf(n,t);if(r)return{type:qf(e,r.type),format:Jf(e,r.format)}}let n=e.derivedInputFields[t];if(n)return{type:n.type,format:null}}function Zf(e,t){for(let[n,r]of Object.entries(e.getOutputFields()))if((r.resolvedName??n)===t)return r}const Qf=`v67.0`;function $f(e){try{let t=JSON.parse(e);if(t.access_token&&t.instance_url)return{access_token:t.access_token,instance_url:t.instance_url}}catch{}throw new q.HttpError({msg:`Salesforce credential is not a valid token bundle โ reconnect Salesforce through the OAuth flow.`})}async function ep(e,t){let{access_token:n,instance_url:r}=$f(e),i=await fetch(`${r.replace(/\/$/,``)}${t}`,{headers:{Authorization:`Bearer ${n}`},signal:AbortSignal.timeout(1e4)});if(!i.ok)throw new q.HttpError({msg:await i.text()});return await i.json()}async function tp(e,t){return(await ep(e,`/services/data/${Qf}/query?q=${encodeURIComponent(t)}`)).records??[]}function np(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(n))}const rp=e=>({requires:{connection:`salesforce`},options:async({query:t,secret:n,environment:r})=>{if(r===`sandbox`)return np([{label:`Contact`,value:`Contact`},{label:`Account`,value:`Account`},{label:`Lead`,value:`Lead`},{label:`Opportunity`,value:`Opportunity`},{label:`Demo Object (custom)`,value:`Demo_Object__c`}],t);if(!n)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(n,`/services/data/${Qf}/sobjects/`)).sobjects.filter(t=>t.queryable&&(!e?.updateableOnly||t.updateable)).map(e=>({label:e.custom?`${e.label} (custom)`:e.label,value:e.name})),t)},widgets:{provider_logo:{provider:`salesforce`}}}),ip={requires:{connection:`salesforce`,fields:[`config.object`]},options:async({query:e,secret:t,payload:n,environment:r})=>{if(r===`sandbox`)return[{label:`External Id (External_Id__c)`,value:`External_Id__c`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});let i=n?.config,a=fp(i?.object);return a?np((await ep(t,`/services/data/${Qf}/sobjects/${encodeURIComponent(a)}/describe`)).fields.filter(e=>e.externalId).map(e=>({label:`${e.label} (${e.name})`,value:e.name})),e):[]},widgets:{provider_logo:{provider:`salesforce`}}},ap={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Prospecting`,value:`Prospecting`},{label:`Demo ยท Negotiation`,value:`Negotiation`},{label:`Demo ยท Closed Won โ won`,value:`Closed Won`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel, IsClosed, IsWon FROM OpportunityStage ORDER BY SortOrder ASC`)).map(e=>({label:`${e.MasterLabel}${e.IsWon?` โ won`:e.IsClosed?` โ closed`:``}`,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},op={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Ada Lovelace (ada@example.com)`,value:`005000000000001AAA`},{label:`Demo ยท Alan Turing (alan@example.com)`,value:`005000000000002AAA`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT Id, Name, Email FROM User WHERE IsActive = true ORDER BY Name ASC LIMIT 500`)).map(e=>({label:`${e.Name} (${e.Email})`,value:e.Id})),e)},widgets:{provider_logo:{provider:`salesforce`}}},sp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Open - Not Contacted`,value:`Open - Not Contacted`},{label:`Demo ยท Working - Contacted`,value:`Working - Contacted`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel FROM LeadStatus ORDER BY SortOrder ASC`)).map(e=>({label:e.MasterLabel,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},cp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Not Started`,value:`Not Started`},{label:`Demo ยท In Progress`,value:`In Progress`},{label:`Demo ยท Completed โ`,value:`Completed`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await tp(t,`SELECT ApiName, MasterLabel, IsClosed FROM TaskStatus ORDER BY SortOrder ASC`)).map(e=>({label:`${e.MasterLabel}${e.IsClosed?` โ closed`:``}`,value:e.ApiName})),e)},widgets:{provider_logo:{provider:`salesforce`}}},lp={requires:{connection:`salesforce`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Outreach Key (Outreach_Key__c)`,value:`Outreach_Key__c`}];if(!t)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(t,`/services/data/${Qf}/sobjects/Task/describe`)).fields.filter(e=>e.externalId).map(e=>({label:`${e.label} (${e.name})`,value:e.name})),e)},widgets:{provider_logo:{provider:`salesforce`}}},up=(e,t)=>({requires:{connection:`salesforce`},options:async({query:n,secret:r,environment:i})=>{if(i===`sandbox`)return[{label:`Demo ยท Technology`,value:`Technology`},{label:`Demo ยท Finance`,value:`Finance`}];if(!r)throw new q.MissingSecretError({providerName:`salesforce`});return np(((await ep(r,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/describe`)).fields.find(e=>e.name===t)?.picklistValues??[]).filter(e=>e.active).map(e=>({label:e.label,value:e.value})),n)},widgets:{provider_logo:{provider:`salesforce`}}}),dp=e=>({requires:{connection:`salesforce`},options:async({query:t,secret:n,environment:r})=>{if(r===`sandbox`)return[{label:`Demo ยท All Records`,value:`00B000000000001AAA`},{label:`Demo ยท My Records`,value:`00B000000000002AAA`}];if(!n)throw new q.MissingSecretError({providerName:`salesforce`});return np((await ep(n,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/listviews`)).listviews.map(e=>({label:e.soqlCompatible?e.label:`${e.label} (not SOQL-compatible)`,value:e.id})),t)},widgets:{provider_logo:{provider:`salesforce`}}});function fp(e){return Array.isArray(e)?e[0]??``:e??``}const pp=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))};async function mp(e,{objects:t,includeStages:n=!1,includeListViewsFor:r=[],includeOwners:i=!1,includeTaskMeta:a=!1,writableOnly:o=!1}){if(e.environment===`sandbox`)return{summary:[`Sandbox Salesforce org (demo data โ field names below are examples, real orgs differ):`,`- Contact: FirstName, LastName, Email, Title, AccountId, OwnerId, Lead_Score__c (custom)`,`- Lead: FirstName, LastName, Email, Company, Status (options: Open - Not Contacted, Working - Contacted), IsConverted`,`- Account: Name, Website, Industry (picklist), NumberOfEmployees, AnnualRevenue`,`- Opportunity: Name, StageName (stages: Prospecting, Negotiation, Closed Won), Amount, CloseDate, IsClosed, IsWon`,"Use field API names verbatim (`__c` suffix = custom). Call this tool against a production connection for the org's real shape."].join(`
|
|
69
69
|
`)};let s=e.connectionSecrets.salesforce;if(!s)return null;let c={},l=[];try{let[e]=await tp(s,`SELECT IsSandbox, OrganizationType FROM Organization`),t=null,n=!1;try{let e=await tp(s,`SELECT IsoCode FROM CurrencyType WHERE IsCorporate = true`);n=!0,t=e[0]?.IsoCode??null}catch{n=!1}c.org={is_sandbox:e?.IsSandbox??null,edition:e?.OrganizationType??null,multi_currency:n,corporate_currency_iso:t},l.push(`Org: ${e?.OrganizationType??`unknown edition`}${e?.IsSandbox?` (SANDBOX โ tokens die on refresh, emails end in .invalid)`:``}${n?`; multi-currency (corporate ${t}) โ prefix amount literals like ${t}5000`:``}.`)}catch{}for(let e of t){let t=await ep(s,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/describe`),n=t.fields.filter(e=>!o||e.updateable&&!e.calculated).map(e=>({name:e.name,label:e.label,type:e.type,updateable:e.updateable,createable:e.createable,external_id:e.externalId||void 0,read_only:e.calculated||!e.updateable?!0:void 0,restricted_picklist:e.restrictedPicklist||void 0,reference_to:e.referenceTo?.length?e.referenceTo:void 0,relationship_name:e.relationshipName??void 0,picklist_values:e.picklistValues?.length?e.picklistValues.filter(e=>e.active).slice(0,25).map(e=>e.value):void 0}));c[e]=n,e===`Account`&&t.fields.some(e=>e.name===`IsPersonAccount`)&&(c.has_person_accounts=!0,l.push(`Person Accounts are ENABLED: B2C people live as Accounts (PersonEmail); Account.Name is read-only on them.`));let r=n.filter(e=>e.restricted_picklist).map(e=>e.name);l.push(`${e}: ${n.length} fields${o?` (writable only)`:``}. Restricted picklists (values validated): ${r.join(`, `)||`none`}.`)}if(n)try{let e=await tp(s,`SELECT ApiName, MasterLabel, IsClosed, IsWon, SortOrder FROM OpportunityStage ORDER BY SortOrder ASC`);c.opportunity_stages=e,l.push(`Opportunity stages (use ApiName verbatim; never assume "Closed Won" exists): ${e.map(e=>`${e.ApiName}${e.IsWon?`(won)`:e.IsClosed?`(closed)`:``}`).join(`, `)}.`)}catch{}for(let e of r)try{let t=await ep(s,`/services/data/${Qf}/sobjects/${encodeURIComponent(e)}/listviews`);c[`${e}_list_views`]=t.listviews.slice(0,25)}catch{}if(i)try{c.active_owners_sample=await tp(s,`SELECT Id, Name, Email FROM User WHERE IsActive = true ORDER BY Name ASC LIMIT 25`)}catch{}if(a)try{let e=await tp(s,`SELECT ApiName, MasterLabel, IsClosed FROM TaskStatus ORDER BY SortOrder ASC`);c.task_statuses=e,l.push(`Task statuses (write the ApiName verbatim; labels localize): ${e.map(e=>`${e.ApiName}${e.IsClosed?`(closed)`:``}`).join(`, `)}.`,"Logging a call = a Task with subtype `call`; an email = subtype `email`. WhoId takes a Contact or Lead; WhatId takes an Account, Opportunity, or custom object. Reruns WITHOUT an idempotency key create duplicate tasks โ set an external-id field + value to make logging rerun-safe.")}catch{}return l.push("Use field API names verbatim (`__c` = custom, `ns__Field__c` = managed package).",`Converted leads are read-only; duplicate rules may block writes (the error lists matching records).`,`Fields absent here may still exist but be hidden from the connected user by field-level security โ and 'no match' can mean 'no record access' under private sharing.`),{summary:l.join(`
|
|
70
70
|
`),data:c}}const hp=_(`company_domain`),gp=_(`salesforce_accounts_found_count`),_p=_(`salesforce_record_id`),vp=_(`salesforce_account_matches`),yp=`account:match:salesforce@1`,bp=r.object({pipe_id:r.literal(yp),run_if:b(),connector:S(),config:r.object({website_field:fd({sectionKey:`general`,inputType:`text`,label:`Website field`,groupPath:`config.general`,path:`config.website_field`,placeholder:`Website`,info:"The Account field holding the company web address. Salesforce has NO standard domain field โ matching normalizes this field's URL spellings. Point it at a custom field like `Domain__c` if your org keeps clean domains there."}).default(`Website`),custom_properties:nd({sectionKey:`general`,label:`Custom fields`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`AnnualRevenue`,info:"Field API names added to each match JSON under `custom_properties` (standard-set names are already top-level).",guide:"Field API names added to each match JSON under `custom_properties` โ standard-set names are already top-level."}),input_fields:L(r.object({[hp.name]:T({fieldName:hp.name})})),output_fields:I(r.object({[gp.name]:D({fieldName:gp.name}),[_p.name]:D({fieldName:_p.name}),[vp.name]:D({fieldName:vp.name})}))}).optional()}),xp=e=>B(K(hp,e)),Sp={"account-match-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},Cp=class extends V{pipeId=yp;payload;payloadSchema=bp;billableOperations=Sp;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`account-match-salesforce-v1-salesforce`)}getInputRequirement(){return xp(this.payload.config)}getRawOutputFields(){return{[gp.name]:this.catalogOutput(gp),[_p.name]:this.catalogOutput(_p),[vp.name]:this.catalogOutput(vp)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Account`]})}},wp=bp,Tp={pipeId:yp,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(yp),label:`Salesforce account match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Find accounts in your Salesforce org by company domain. Salesforce has no domain field, so the match probes exact spellings of the Website URL (never substring matching). Multiple matches are normal; a clean miss completes with count = 0.`,tags:[H.WEBSITE],keywords:[`crm`,`sfdc`,`company`,`lookup`,`exists`,`dedupe`,`domain`],docPath:G(yp),guide:"Matching is exact-IN over ~10 generated Website spellings (acme.com, www.acme.com, https variantsโฆ) โ exotic stored formats (acme.com/about-us) will miss; the org-side fix is a clean custom field targeted via `website_field`. Person accounts are excluded. `salesforce_record_id` = the OLDEST match (CreatedDate ASC โ usually the canonical record); all matches ride in the matches JSON. found_count = 0 is a successful result.",billableOperations:Sp,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:xp(null),defaultPayload:{pipe_id:yp,connector:{strategy:`first`,connections:[]},run_if:null,config:{website_field:`Website`,custom_properties:[],input_fields:{company_domain:{alias:``}},output_fields:{salesforce_accounts_found_count:{alias:``,enabled:!0},salesforce_record_id:{alias:``,enabled:!0},salesforce_account_matches:{alias:``,enabled:!0}}}}},Ep=[`eq`,`neq`,`gt`,`gte`,`lt`,`lte`],Dp=[`eq`,`neq`,`contains`],Op={text:{operators:Dp,filterTarget:null,flatten:`scalar`,columnType:`string`},number:{operators:Ep,filterTarget:null,flatten:`scalar`,columnType:`number`},rating:{operators:Ep,filterTarget:null,flatten:`scalar`,columnType:`number`},currency:{operators:Ep,filterTarget:`currency_value`,flatten:`currency`,columnType:`number`},date:{operators:Ep,filterTarget:null,flatten:`scalar`,columnType:`string`},timestamp:{operators:Ep,filterTarget:null,flatten:`scalar`,columnType:`string`},checkbox:{operators:[`eq`],filterTarget:null,flatten:`scalar`,columnType:`boolean`},select:{operators:[`eq`],filterTarget:null,flatten:`select_titles`,columnType:`string`},status:{operators:[`eq`],filterTarget:null,flatten:`status_title`,columnType:`string`},"personal-name":{operators:[`eq`,`neq`,`contains`],filterTarget:`full_name`,explicitTargets:[`first_name`,`last_name`,`full_name`],flatten:`personal_name`,columnType:`string`},"email-address":{operators:[`eq`,`neq`,`contains`],filterTarget:`email_address`,explicitTargets:[`email_address`,`email_domain`,`email_root_domain`,`email_local_specifier`,`original_email_address`],flatten:`email_join`,columnType:`string`},domain:{operators:[`eq`,`neq`,`contains`],filterTarget:`domain`,explicitTargets:[`domain`,`root_domain`],flatten:`domain_join`,columnType:`string`},"phone-number":{operators:[`eq`,`neq`,`contains`],filterTarget:`phone_number`,explicitTargets:[`phone_number`,`original_phone_number`,`country_code`],flatten:`phone_join`,columnType:`string`},location:{operators:[`eq`,`neq`,`contains`],filterTarget:null,requiresExplicitTarget:!0,explicitTargets:[`line_1`,`line_2`,`line_3`,`line_4`,`locality`,`region`,`postcode`,`country_code`],flatten:`location`,columnType:`string`},"record-reference":{operators:[`eq`],filterTarget:`target_record_id`,explicitTargets:[`target_record_id`,`target_object`],flatten:`record_refs`,columnType:`string`},"actor-reference":{operators:[`eq`],filterTarget:null,actorCompound:!0,flatten:`actor_ref`,columnType:`string`},interaction:{operators:Ep,filterTarget:`interacted_at`,explicitTargets:[`interacted_at`,`interaction_type`],flatten:`interaction`,columnType:`string`}};function kp(e){return Op[e]??{operators:Dp,filterTarget:null,flatten:`scalar`,columnType:`string`}}function Ap(){let e=[];for(let[t,n]of Object.entries(Op)){if(n.filterRejection){e.push(`- ${t}: not filterable (${n.filterRejection})`);continue}let r=n.requiresExplicitTarget?` (name a sub-property: ${n.explicitTargets?.join(`, `)})`:n.filterTarget?` (targets ${n.filterTarget}${n.explicitTargets?`; also: ${n.explicitTargets.join(`, `)}`:``})`:``;e.push(`- ${t}: ${n.operators.join(`, `)}${r}`)}return e.join(`
|
|
71
71
|
`)}async function jp(e,t){let n=await fetch(`https://api.attio.com/v2${t}`,{headers:{Authorization:`Bearer ${e}`},signal:AbortSignal.timeout(1e4)});if(!n.ok)throw new q.HttpError({msg:await n.text()});return await n.json()}function Mp(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(n))}const Np=(e,t)=>{let n=e?.config?.[t],r=Array.isArray(n)?n[0]:n;return typeof r==`string`&&r?r:void 0},Pp={requires:{connection:`attio`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return Mp([{label:`Person`,value:`people`},{label:`Company`,value:`companies`},{label:`Deal`,value:`deals`},{label:`Demo ยท Listing (custom)`,value:`listings`}],e);if(!t)throw new q.MissingSecretError({providerName:`attio`});return Mp((await jp(t,`/objects`)).data.map(e=>({label:e.singular_noun,value:e.api_slug})),e)},widgets:{provider_logo:{provider:`attio`}}},Fp={requires:{connection:`attio`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Lead`,value:`Lead`},{label:`Demo ยท In Progress`,value:`In Progress`},{label:`Demo ยท Won ๐`,value:`Won ๐`}];if(!t)throw new q.MissingSecretError({providerName:`attio`});return Mp((await jp(t,`/objects/deals/attributes/stage/statuses`)).data.filter(e=>!e.is_archived).map(e=>({label:e.title,value:e.title})),e)},widgets:{provider_logo:{provider:`attio`}}},Ip={requires:{connection:`attio`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Sales (parent: companies)`,value:`sales`},{label:`Demo ยท Hiring (parent: people)`,value:`hiring`}];if(!t)throw new q.MissingSecretError({providerName:`attio`});return Mp((await jp(t,`/lists`)).data.map(e=>({label:`${e.name} (parent: ${e.parent_object.join(`, `)||`unknown`})`,value:e.api_slug})),e)},widgets:{provider_logo:{provider:`attio`}}},Lp=e=>({requires:{connection:`attio`,fields:[`config.${e}`]},options:async({query:t,secret:n,payload:r,environment:i})=>{if(i===`sandbox`)return[{label:`Demo ยท Qualified`,value:`Qualified`},{label:`Demo ยท Negotiation`,value:`Negotiation`}];if(!n)throw new q.MissingSecretError({providerName:`attio`});let a=Np(r,e);if(!a)return[];let o=(await jp(n,`/lists/${encodeURIComponent(a)}/attributes?limit=500`)).data.find(e=>e.type===`status`&&!e.is_archived);return o?Mp((await jp(n,`/lists/${encodeURIComponent(a)}/attributes/${encodeURIComponent(o.api_slug)}/statuses`)).data.filter(e=>!e.is_archived).map(e=>({label:e.title,value:e.title})),t):[]},widgets:{provider_logo:{provider:`attio`}}}),Rp=e=>({requires:{connection:`attio`,...e.fromField?{fields:[`config.${e.fromField}`]}:{}},options:async({query:t,secret:n,payload:r,environment:i})=>{if(i===`sandbox`)return[{label:`Demo ยท All records`,value:`sandbox-view-1`},{label:`Demo ยท My focus list`,value:`sandbox-view-2`}];if(!n)throw new q.MissingSecretError({providerName:`attio`});let a=e.identifier??(e.fromField?Np(r,e.fromField):void 0);return a?Mp((await jp(n,`/${e.target}/${encodeURIComponent(a)}/views`)).data.map(e=>({label:e.title,value:e.id.view_id})),t):[]},widgets:{provider_logo:{provider:`attio`}}}),zp=e=>{let t=[e.first_name,e.last_name].filter(Boolean).join(` `);return t?`${t}${e.email_address?` (${e.email_address})`:``}`:e.email_address??e.id.workspace_member_id},Bp={requires:{connection:`attio`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return[{label:`Demo ยท Ada Lovelace (ada@example.com)`,value:`member-1`},{label:`Demo ยท Alan Turing (alan@example.com)`,value:`member-2`}];if(!t)throw new q.MissingSecretError({providerName:`attio`});return Mp((await jp(t,`/workspace_members`)).data.map(e=>({label:zp(e),value:e.id.workspace_member_id})),e)},widgets:{provider_logo:{provider:`attio`}}},Vp=e=>({requires:{connection:`attio`,fields:[`config.${e}`]},options:async({query:t,secret:n,payload:r,environment:i})=>{if(i===`sandbox`)return[{label:`Demo ยท Email addresses (email_addresses)`,value:`email_addresses`},{label:`Demo ยท Listing ref (listing_ref)`,value:`listing_ref`}];if(!n)throw new q.MissingSecretError({providerName:`attio`});let a=Np(r,e);return a?Mp((await jp(n,`/objects/${encodeURIComponent(a)}/attributes?limit=500`)).data.filter(e=>e.is_unique&&!e.is_archived).map(e=>({label:`${e.title} (${e.api_slug})`,value:e.api_slug})),t):[]},widgets:{provider_logo:{provider:`attio`}}}),Hp=e=>({requires:{connection:`attio`,...e.fromField?{fields:[`config.${e.fromField}`]}:{}},options:async({query:t,secret:n,payload:r,environment:i})=>{if(i===`sandbox`)return Mp([{label:`Demo ยท Watch type (watch_type)`,value:`watch_type`},{label:`Demo ยท Lead score (lead_score)`,value:`lead_score`}],t);if(!n)throw new q.MissingSecretError({providerName:`attio`});let a=e.identifier??(e.fromField?Np(r,e.fromField):void 0);return a?Mp((await jp(n,`/${e.target}/${encodeURIComponent(a)}/attributes?limit=500`)).data.filter(e=>!e.is_system_attribute&&!e.is_archived).map(e=>({label:`${e.title} (${e.api_slug})`,value:e.api_slug})),t):[]},widgets:{provider_logo:{provider:`attio`}}}),Up=e=>({requires:{connection:`attio`,fields:[`config.${e}`]},options:async({query:t,secret:n,payload:r,environment:i})=>{if(i===`sandbox`)return Mp([{label:`Demo ยท Parent ยท Name (parent.name)`,value:`parent.name`},{label:`Demo ยท Parent ยท Watch type (parent.watch_type)`,value:`parent.watch_type`}],t);if(!n)throw new q.MissingSecretError({providerName:`attio`});let a=Np(r,e);if(!a)return[];let o=(await jp(n,`/lists`)).data.find(e=>e.api_slug===a)?.parent_object[0];return o?Mp((await jp(n,`/objects/${encodeURIComponent(o)}/attributes?limit=500`)).data.filter(e=>!e.is_archived).map(e=>({label:`Parent ยท ${e.title} (parent.${e.api_slug})`,value:`parent.${e.api_slug}`})),t):[]},widgets:{provider_logo:{provider:`attio`}}});async function Wp(e,{objects:t,includeLists:n=!1,includeViewsFor:r=[],includeMembers:i=!1,writableOnly:a=!1}){if(e.environment===`sandbox`)return{summary:[`Sandbox Attio workspace (demo data โ slugs below are examples, real workspaces differ):`,`- objects: people, companies, deals, listings (custom)`,`- people: name (personal-name), email_addresses (unique), job_title, company (record-reference), owner_ref (actor-reference)`,`- deals: name, stage (status; demo titles: Lead, In Progress, Won ๐), value (currency), owner, associated_company`,`- lists: sales (parent: companies; status attribute stage: Qualified, Negotiation)`,`Call this tool against a production connection to get the workspace's real objects, attributes, and status titles.`].join(`
|
|
@@ -81,7 +81,7 @@ How do you...`]}},crustdata_post_list:{label:`Crustdata Post list`,type:`json`,f
|
|
|
81
81
|
โฆ`,inputType:`text`,minLength:1,maxLength:1e6,expectedTagType:`string`,expectedTagFormat:`markdown`,multiline:!0}),output_fields:I(r.object({[RO.name]:D({fieldName:RO.name})}))})}),BO={"email-send-resend-v1-resend":{allowManagedConnection:!1,provider:`resend`,credits:null,mode:null}},VO=class extends V{pipeId=LO;payload;payloadSchema=zO;billableOperations=BO;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`resend`]}estimateBillableOperations(e){return U(e,`email-send-resend-v1-resend`)}getTemplatedFields(){return[this.payload.config.from,this.payload.config.to,this.payload.config.reply_to,this.payload.config.subject,this.payload.config.body]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[RO.name]:this.catalogOutput(RO)}}getConnectionsRequirements(){return[{provider:`resend`,rateLimitRatio:1,rateLimitOperation:`resend_generic`,allowManagedConnection:!1}]}},HO=zO,UO={pipeId:LO,basePipe:W(LO),label:`Send email with Resend`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Send an email with Resend.`,guide:"Send an email via Resend. From, To, Reply-To, Subject and Body are templated config fields โ reference upstream fields with `{{ field_name }}` and stored secrets with `{{ SECRETS.KEY }}`. Requires a Resend vault connection (call list_connections to find one).",tags:[H.EMAIL],keywords:[`outreach`,`message`,`mail`,`deliver`,`outbound`,`transactional`],docPath:G(LO),hasSideEffects:!0,billableOperations:BO,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`resend`],defaultInputRequirement:null,managedProviders:[],deprecatedProviders:[],defaultPayload:{pipe_id:LO,connector:{strategy:`first`,connections:[]},run_if:null,config:{from:``,to:``,reply_to:``,subject:``,body:``,output_fields:{resend_email_success:{alias:``,enabled:!0}}}}},WO=`email:validate:zerobounce@1`,GO=_(`email`),KO=_(`zerobounce_validation_status`),qO=_(`zerobounce_validation_match`),JO=r.object({pipe_id:r.literal(WO),connector:C(),run_if:b(),config:r.object({input_fields:L(r.object({[GO.name]:T({fieldName:GO.name})})),output_fields:I(r.object({[qO.name]:D({fieldName:qO.name}),[KO.name]:D({fieldName:KO.name})}))}).optional()}),YO=e=>B(K(GO,e)),XO={"email-validate-zerobounce-v1-zerobounce":{provider:`zerobounce`,allowManagedConnection:!0,credits:{default:.4,level1:{credits:.3,weight:1},level2:{credits:.15,weight:6}},mode:`always`}},ZO=class extends V{pipeId=WO;payload;payloadSchema=JO;billableOperations=XO;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`zerobounce`]}estimateBillableOperations(e){return U(e,`email-validate-zerobounce-v1-zerobounce`)}getInputRequirement(){return YO(this.payload.config)}getRawOutputFields(){return{[KO.name]:this.catalogOutput(KO),[qO.name]:this.catalogOutput(qO)}}getConnectionsRequirements(){return[{provider:`zerobounce`,rateLimitRatio:1,rateLimitOperation:`zerobounce_generic`,allowManagedConnection:!0}]}},QO=JO,$O={pipeId:WO,basePipe:W(WO),label:`Validate email`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Verify email address against various factors, including syntax, domain, and server existence, to ensure it is deliverable and active.`,tags:[H.EMAIL],keywords:[`verify`,`verification`,`bounce`,`deliverability`,`check`,`clean`],docPath:G(WO),billableOperations:XO,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`zerobounce`],managedProviders:[`zerobounce`],deprecatedProviders:[],defaultInputRequirement:YO(null),defaultPayload:{pipe_id:WO,connector:null,run_if:null,config:{input_fields:{email:{alias:``}},output_fields:{zerobounce_validation_status:{alias:``,enabled:!0},zerobounce_validation_match:{alias:``,enabled:!0}}}}},ek=`email:write@1`,tk=`email-write-v1`,nk=jl(tk),rk=_(`email_subject`),ik=_(`email_body`),ak=r.object({pipe_id:r.literal(ek),connector:C(),run_if:b(),config:r.object({template:Iu({sectionKey:`general`,label:`Prompt`,path:`config.template`,placeholder:X(`prompt`),groupPath:`config.prompt`,required:!0}),model:hd({sectionKey:`general`,label:`Model`,path:`config.model`,groupPath:`config.prompt`,billableOperations:nk,defaultValue:Sl}),signature:pd({sectionKey:`general`,label:`Signature (Markdown)`,path:`config.signature`,groupPath:`config.email`,minLength:5,rows:10}),persona:md({sectionKey:`general`,label:`Persona`,info:`Define the unique tone of your email`,path:`config.persona`,groupPath:`config.prompt`,required:!1,options:[{label:`Sales`,value:`sales`},{label:`Human Resources`,value:`human_resources`},{label:`Customer Success`,value:`customer_success`}]}),output_fields:I(r.object({[rk.name]:D({fieldName:rk.name}),[ik.name]:D({fieldName:ik.name})}))})}),ok=class extends V{pipeId=ek;payload;payloadSchema=ak;billableOperations=nk;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return wl(this.payload.config.model)}estimateBillableOperations(e){return Nl(e,{model:this.payload.config.model,prefix:tk,inputTokens:600,outputTokens:800})}getInputRequirement(){return pm([this.payload.config.template])}getSecretRequirements(){return J([this.payload.config.template])}getConstantRequirements(){return mm([this.payload.config.template])}getRawOutputFields(){return{[rk.name]:this.catalogOutput(rk),[ik.name]:this.catalogOutput(ik)}}getConnectionsRequirements(){return Tl(this.payload.config.model)}},sk=ak,ck={pipeId:ek,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(ek),label:`Email writer`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`An AI agent specialized in composing emails.`,guide:`AI email composer. Outputs: email_subject, email_body. Pair with email:send:gmail@1 or email:send:resend@1 to send the composed email. Requires 'email' field in input records for the sender pipe.`,tags:[H.AI],keywords:[`ai`,`compose`,`draft`,`generate`,`copywriting`,`personalize`,`outreach`],docPath:G(ek),defaultInputRequirement:null,billableOperations:nk,allowedUserConnectionProviders:El(),managedProviders:El(),deprecatedProviders:[],defaultPayload:{pipe_id:ek,connector:null,run_if:null,config:{template:``,output_fields:{email_body:{alias:``,enabled:!0},email_subject:{alias:``,enabled:!0}},persona:`sales`,model:Sl,signature:``}}},lk=`field:domainify@1`,uk=_(`url_input`),dk=_(`domain`),fk=r.object({pipe_id:r.literal(lk),run_if:b(),connector:Ru(),config:r.object({input_fields:L(r.object({[uk.name]:T({fieldName:uk.name})})),output_fields:I(r.object({[dk.name]:D({fieldName:dk.name})}))}).optional()}),pk=e=>B(K(uk,e)),mk={"field-domainify-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},hk=class extends V{pipeId=lk;payload;payloadSchema=fk;billableOperations=mk;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getInputRequirement(){return pk(this.payload.config)}getRawOutputFields(){return{[dk.name]:this.catalogOutput(dk)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},gk=fk,_k={pipeId:lk,basePipe:W(lk),label:`Extract domain`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Transform URL input into a domain. Also tolerates bare domains and email addresses (the part after @ is used). Examples: 'https://go.com' โ 'go.com'; 'jane@acme.io' โ 'acme.io'.`,tags:[H.LOGIC,H.FIELDS],keywords:[`url`,`website`,`hostname`,`clean`,`strip`,`parse`],docPath:G(lk),billableOperations:mk,defaultInputRequirement:pk(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:lk,run_if:null,connector:null,config:{input_fields:{url_input:{alias:``}},output_fields:{domain:{alias:``,enabled:!0}}}}},vk=`field:slugify@1`,yk=_(`string_input`),bk=_(`slugified`),xk=r.object({pipe_id:r.literal(vk),run_if:b(),connector:Ru(),config:r.object({input_fields:L(r.object({[yk.name]:T({fieldName:yk.name})})),output_fields:I(r.object({[bk.name]:D({fieldName:bk.name})}))}).optional()}),Sk=e=>B(K(yk,e)),Ck={"field-slugify-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},wk=class extends V{pipeId=vk;payload;payloadSchema=xk;billableOperations=Ck;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getInputRequirement(){return Sk(this.payload.config)}getRawOutputFields(){return{[bk.name]:this.catalogOutput(bk)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},Tk=xk,Ek={pipeId:vk,basePipe:W(vk),label:`Slugify field`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Strip a field value of characters not commonly found in slugs.`,tags:[H.LOGIC,H.FIELDS],keywords:[`clean`,`sanitize`,`normalize`,`url safe`,`format`,`strip`],docPath:G(vk),billableOperations:Ck,defaultInputRequirement:Sk(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:vk,run_if:null,connector:null,config:{input_fields:{string_input:{alias:``}},output_fields:{slugified:{alias:``,enabled:!0}}}}},Dk=`field:timestamp@1`,Ok=_(`timestamp`),kk=r.object({pipe_id:r.literal(Dk),run_if:b(),connector:Ru(),config:r.object({offset_days:_d({label:`Offset (days)`,info:`Shift the stamped moment by this many days: positive = future (a follow-up or expiry date), negative = past. Empty = now.`,path:`config.offset_days`,groupPath:`config.general`,sectionKey:`general`,min:-36500,max:36500}).nullish(),granularity:md({label:`Granularity`,description:`"datetime" (default) keeps the full instant; "date" truncates to midnight UTC for stable date-only comparisons and cohort labels.`,path:`config.granularity`,groupPath:`config.general`,sectionKey:`general`,required:!1,options:[{label:`Datetime`,value:`datetime`},{label:`Date`,value:`date`}]}).nullish(),output_fields:I(r.object({[Ok.name]:D({fieldName:Ok.name})}))}).optional()}),Ak={"field-timestamp-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},jk=class extends V{pipeId=Dk;payload;payloadSchema=kk;billableOperations=Ak;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getInputRequirement(){return Of()}getRawOutputFields(){return{[Ok.name]:this.catalogOutput(Ok)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},Mk=kk,Nk={pipeId:Dk,basePipe:W(Dk),label:`Timestamp`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Write the moment the pipe ran (ISO 8601, UTC) into a column โ optionally offset into the future/past or truncated to a date. The building block for freshness cadences, follow-up dates, and expiry columns.`,guide:`Stamps the run moment into one datetime column (alias it to name the moment: last_attempted_at, next_review_at, valid_until). It has NO typed inputs, so a row-data change never makes its cell stale โ it recomputes only when force-requeued (rows:enrich@1 run_statuses covering its current status) or when this config changes. Pair with a run_if referencing the field whose attempt it stamps: the run_if reference is what ORDERS this pipe after that field's producer, so list EVERY status the field can end in (completed, failed, no_result, skipped โ effectively always-true) โ a narrower set wipes the stamp to skipped on non-matching forced runs. config.offset_days shifts the moment (positive = future: follow-up/expiry dates that feed older_than_days / within_last_days conditions; negative = past); config.granularity 'date' truncates to midnight UTC for stable date-only comparisons. Derives from the run moment + static config ONLY โ for date math over a row's own fields, use a dedicated pipe, not this one. Deterministic-local: runs for REAL in sandbox, FREE pipe0 operation.`,tags:[H.LOGIC,H.FIELDS],keywords:[`timestamp`,`now`,`date`,`time`,`stamp`,`enriched at`,`last run`,`freshness`,`expiry`,`follow up`],docPath:G(Dk),billableOperations:Ak,defaultInputRequirement:null,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:Dk,run_if:null,connector:null,config:{offset_days:null,granularity:``,output_fields:{timestamp:{alias:``,enabled:!0}}}}};function Pk({name:e,resolvedName:t,source:n}){let r=e===t?`'${e}'`:`'${e}' (resolved to '${t}')`;return n?`${r} (from ${n})`:r}const Fk=e=>(e.kind===`all`||e.kind===`any`)&&e.of.length===0;function Ik(e){switch(e.kind){case`field`:return Pk(e.field);case`optional`:return`[optional ${Pk(e.field)}]`;case`all`:case`any`:{let t=e.of.filter(e=>!Fk(e));return t.length===0?`(none)`:t.length===1?Ik(t[0]):`(${t.map(Ik).join(e.kind===`all`?` AND `:` OR `)})`}}}function Lk(e,t){return`Pipe input requirement is not satisfied${t?.pipeId!==void 0||t?.index!==void 0?` for pipe${t.index===void 0?``:` at index ${t.index}`}${t.pipeId===void 0?``:` (${t.pipeId})`}`:``}: ${Ik(e)}. Map missing fields to existing ones, add a pipe that outputs them, or include them in your inputs.`}var Rk=class extends Error{constructor(e){super(`Request validation failed (${e.length} errors): ${e.join(`, `)}`),this.errors=e,this.name=`RequestValidationError`,Object.setPrototypeOf(this,new.target.prototype)}};const zk={ConditionTargetFieldNotFound:({fieldName:e,pipeId:t,pipeIdx:n})=>({code:`ConditionTargetFieldNotFound`,message:`${t} (idx: ${n}) has an invalid condition. Field '${e}' not found.`}),ConditionValueOnJsonField:({fieldName:e,pipeId:t,pipeIdx:n})=>({code:`ConditionValueOnJsonField`,message:`${t} (idx: ${n}) has an invalid condition. '${e}' is a json field โ its VALUE cannot be compared. Use a STATUS condition (property: "status"), or extract the nested property into its own flat field first.`}),FaultyEnrichmentOrder:()=>({code:`FaultyEnrichmentOrder`,message:`Enrichment not found while ordering. Was the request invalid?`}),MustDefineAnnotations:()=>({code:`MustDefineAnnotations`,message:`Must define either input or field annoations to validate pipes payload.`}),CircularDependency:({currentPipe:e,circularPipe:t})=>({code:`CircularDependency`,message:`'${e.pipe_id}' (${e.idx}) and '${t.pipeId}' (${t.idx}) create a dependency loop. They both need the other's output to complete. Neither can complete. You can map the pipe outputs or input to fields with different names if you want the pipes to be independent or each other.`}),ValidationFailed:({error:e})=>({code:`ValidationFailed`,message:`Failed to validate task request: ${e instanceof Error?e.message:String(e)}`}),MissingCustomConnections:({pipeId:e,index:t,missingProviders:n})=>({code:`MissingCustomConnections`,message:`Pipe ${e} (index ${t}) requires you to specify custom connections for the providers ${n.join(`, `)}. Create the custom connections in the dashbard and reference them in your request.`}),ResponseGenerationFailed:({error:e})=>({code:`ResponseGenerationFailed`,message:`Failed to generate response: ${e instanceof Error?e.message:String(e)}`}),InputValuesMustHaveSameType:({pipeId:e,fieldNames:t})=>({code:`InputValuesMustHaveSameType`,message:`Pipe ${e} requires all input values to have the same type. But values ${t.join(`, `)} have different types.`}),NotValidated:()=>({code:`NotValidated`,message:`PipelineRequest must be validated before accessing results`}),MissingIdInInput:()=>({code:`MissingIdInInput`,message:`Inputs missing 'id' property.`}),InputDataTypeMismatch:({key:e,derivedInputFieldType:t,fieldType:n})=>({code:`InputDataTypeMismatch`,message:`Input data has values with matching keys '${e}' but different types. Expected type: '${t}'. Actual: '${n}'.`}),UnresolvableDependency:({index:e,dependencyIndex:t})=>({code:`UnresolvableDependency`,message:`Unresolvable dependency at index ${e} to ${t}`}),RequirementUnmet:({requirement:e,pipeId:t,index:n})=>({code:`RequirementUnmet`,message:Lk(e,{pipeId:t,index:n})}),HardInputDependencyViolation:({index:e,indexPipeId:t,dependencyIndex:n,dependencyIndexPipeId:r})=>({code:`HardInputDependencyViolation`,message:`Dependency violation: pipe at idx: ${e} (${t}) must come after pipe at idx: ${n} (${r})`}),HardConditionDependencyViolation:({index:e,indexPipeId:t,dependencyIndex:n,dependencyIndexPipeId:r})=>({code:`HardConditionDependencyViolation`,message:`Dependency violation: pipe at idx: ${e} (${t}) has a condition that points to pipe at idx: ${n} (${r}). But pipe index: ${e} (${t}) is always must be processed after pipe at index ${n} (${r}). This is due to input requirements or other conditions.`}),DuplicateInitialField:({name:e})=>({code:`DuplicateInitialField`,message:`Duplicate initial field '${e}' detected. Each field must be defined only once.`}),MissingInputId:({index:e})=>({code:`MissingInputId`,message:`Input record at index ${e} is missing a required ID field.`}),InvalidId:()=>({code:`InvalidId`,message:`Cell IDs must be numbers or strings`}),IDConflict:({index:e,id:t})=>({code:`IDConflict`,message:`Input data at index ${e} has Id conflict. Id '${t}' is not unique.`}),UnknownResolver:({pipeId:e,index:t})=>({code:`UnknownResolver`,message:`Unknown pipe '${e}' specified at position ${t}.`}),DuplicatePipeOutput:({pipeId:e,outputField:t})=>({code:`DuplicateEnrichmentOutput`,message:`Field conflict for '${e}'. Cannot add output field ${Pk(t)} to pipeline because it already exists. Try renaming it.`}),ReservedOutputFieldName:({})=>({code:`ReservedOutputFieldName`,message:`'id' is reserved field name. Please rename your output field.`}),InputDataDoesNotMatchOutputField:({index:e,resolvedName:t,type:n,inputValueType:r})=>({code:`InputDataDoesNotMatchOutputField`,message:`Input at position ${e} provided data for field '${t}' that did not match expected type. Expected: '${n}', Actual: '${r}'.`}),AmbiguousDependency:({fieldName:e})=>({code:`AmbiguousDependency`,message:`Found more than one pipe that produces field: ${e}. Rename or disable the field to add it.`}),EmptyObjectProperty:()=>({code:`EmptyObjectProperty`,message:`Input data contains empty object property "". This is not allowed.`}),JSONSchemaMissing:({schemaRef:e,outputName:t})=>({code:`JSONSchemaMissing`,message:`Missing jsonSchema '${e}' for output with name '${t}'.`}),InvalidJSONSchema:({schemaRef:e})=>({code:`InvalidJSONSchema`,message:`JSON Schema (ref: ${e}) is invalid.`}),MissingOutputFieldDescription:({outputName:e})=>({code:`MissingOutputFieldDescription`,message:`The output field ${e} is missing a "description" property. Define it {{ ${e} description="Foo bar" }}`}),InvalidFormatTag:({outputName:e,format:t})=>({code:`InvalidFormatTag`,message:`The output field ${e} has an invalid format tag ${t}.`}),RecursiveExpandedValue:()=>({code:`RecursiveExpandedValue`,message:`Your input values contain a recursive expanded valuetype `})};var Bk=class extends Error{},Vk=class extends Bk{codes;appErrors;constructor(e){super(e.map(e=>e.message).join(`, `)||`Unknown`),this.errors=e,this.codes=e.map(e=>e.code),this.appErrors=e}};const Hk=`fields:merge@1`,Uk=_(`merge_result`),Wk=r.object({pipe_id:r.literal(Hk),connector:Ru(),run_if:b(),config:r.object({merge_fields:Ku({sectionKey:`general`,groupPath:`config.general`,path:`config.merge_fields`,label:`Fields`,info:`Provide references to input fields`,minItems:1}),output_fields:I(r.object({[Uk.name]:D({fieldName:Uk.name})}))})}),Gk={"fields-merge-v1-pipe0":{credits:{default:0},allowManagedConnection:!0,provider:`pipe0`,mode:`always`}},Kk=class extends V{pipeId=Hk;payload;payloadSchema=Wk;billableOperations=Gk;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`fields-merge-v1-pipe0`)}getInputRequirement(){let e=this.payload.config.merge_fields.map(e=>e.field_name),t;return kf(...this.payload.config.merge_fields.map(n=>B({format:null,type:r=>{let i=Yf(r,e)[n.field_name],a=i?.type?i.type:`unknown`;if(a!==`unknown`){if(t&&t!==a)throw new Vk([zk.InputValuesMustHaveSameType({pipeId:this.pipeId,fieldNames:e})]);t=a}return i?.type?i.type:`unknown`},label:``,description:``,name:n.field_name,resolvedName:n.field_name})))}getRawOutputFields(){return{[Uk.name]:this.catalogOutput(Uk,{resolveType:e=>{let t=Yf(e,this.payload.config.merge_fields.map(e=>e.field_name));return Object.values(t).find(e=>!!e.type)?.type||`string`}})}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},qk=Wk,Jk={pipeId:Hk,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(Hk),label:`Merge fields`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Join one or more fields into one field. The final result will be the first defined field. A single-source merge establishes a stable output name that additional sources can join later without consumers changing.`,tags:[H.FIELDS,H.LOGIC],keywords:[`combine`,`join`,`coalesce`,`fallback`,`concat`,`first defined`,`alias`],docPath:G(Hk),defaultInputRequirement:null,billableOperations:Gk,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:Hk,connector:null,run_if:null,config:{merge_fields:[],output_fields:{merge_result:{alias:``,enabled:!0}}}}},Yk=`formula:run@1`,Xk=_(`formula_result`),Zk=[`string`,`number`,`boolean`,`date`,`json`],Qk={string:{type:`string`,format:`text`},number:{type:`number`,format:`decimal`},boolean:{type:`boolean`,format:null},date:{type:`string`,format:`date`},json:{type:`json`,format:`json_object`}},$k=r.object({pipe_id:r.literal(Yk),run_if:b(),connector:Ru(),config:r.object({code:pd({label:`Formula`,info:"Synchronous JavaScript body that must `return` a value. Mapped columns are available as `inputs.<column_name>`. Standard built-ins only (Math, String, Array, Date, RegExp, Number, Object, JSON) โ no network, imports, or async.",path:`config.code`,groupPath:`config.general`,sectionKey:`general`,rows:8,minLength:1,maxLength:1e4,placeholder:`const days = inputs.primary_seniority === "c_suite" ? 90 : 270;
|
|
82
82
|
return new Date(Date.now() - days * 86400000).toISOString().slice(0, 10);`}),formula_inputs:Ku({label:`Input columns`,info:`Columns injected into the formula as inputs.<column_name>. The formula re-runs when any of them changes.`,path:`config.formula_inputs`,groupPath:`config.general`,sectionKey:`general`}),result_type:md({label:`Result type`,info:`Type of the result column. The returned value must match it (a date is a YYYY-MM-DD string).`,path:`config.result_type`,groupPath:`config.general`,sectionKey:`general`,required:!1,defaultValue:`string`,options:[{value:`string`,label:`String`},{value:`number`,label:`Number`},{value:`boolean`,label:`Boolean`},{value:`date`,label:`Date`},{value:`json`,label:`JSON`}]}),output_fields:I(r.object({[Xk.name]:D({fieldName:Xk.name})}))})}),eA={"formula-run-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},tA=class extends V{pipeId=Yk;payload;payloadSchema=$k;billableOperations=eA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getInputRequirement(){return Of(...this.payload.config.formula_inputs.map(e=>B({name:e.field_name,resolvedName:e.field_name,label:``,description:``,source:`config.formula_inputs โ columns injected as inputs.<column_name>`,type:`unknown`,format:null})))}getRawOutputFields(){let e=Qk[this.payload.config.result_type||`string`];return{[Xk.name]:this.catalogOutput(Xk,{isPrimaryOutput:!0,resolveType:()=>e.type,resolveFormat:()=>e.format})}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_generic`,allowManagedConnection:!0}]}},nA=$k,ite={pipeId:Yk,basePipe:W(Yk),label:`Formula`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Compute a value per row with a JavaScript formula over mapped columns โ cleanup, math, conditionals, date arithmetic โ without an external provider.`,guide:"Runs config.code as a synchronous JavaScript body in an isolated remote sandbox: standard built-ins (Math, String, Array, Date, RegExp, Number, Object, JSON) and nothing else โ NO network, imports, or async. Mapped columns arrive as `inputs.<column_name>` (null when the cell is empty), typed as JavaScript values โ but values arrive AS STORED, so coerce when the type matters (a manually-entered number can arrive as a string: `Number(inputs.x)`). The clock (Date.now(), new Date()) is the real run-time clock โ plain JavaScript, no injected globals. The body must `return` a JSON-serializable value matching config.result_type; pick 'date' to emit YYYY-MM-DD strings that date conditions (older_than_days / within_last_days) and date-input pipes can consume โ e.g. derive a per-row signal_window_start from primary_seniority for signals:personprofilematch@1. Each mapped column is a typed input: the cell re-runs when an input value changes, and editing the code re-runs every row (a config change). Errors (throw, timeout, non-serializable result, type mismatch) fail the cell with the message. Executes remotely in an isolated worker with strict CPU/memory caps; FREE pipe0 operation.",docPath:G(Yk),tags:[H.LOGIC,H.FIELDS],keywords:[`javascript`,`js`,`code`,`compute`,`calculate`,`derive`,`expression`,`transform`],billableOperations:eA,defaultInputRequirement:null,inputFieldMode:`static`,outputFieldMode:`config`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:Yk,run_if:null,connector:null,config:{code:``,formula_inputs:[],result_type:`string`,output_fields:{formula_result:{alias:``,enabled:!0}}}}},rA=`http:request@1`,iA=_(`http_response_status`),aA=_(`http_response_body`),oA=_(`http_response_headers`),sA=r.object({pipe_id:r.literal(rA),connector:Ru(),run_if:b(),config:r.object({method:md({sectionKey:`general`,groupPath:`config.general`,path:`config.method`,label:`Method`,defaultValue:`GET`,options:[...[{value:`GET`,label:`GET`},{value:`POST`,label:`POST`},{value:`PUT`,label:`PUT`},{value:`PATCH`,label:`PATCH`},{value:`DELETE`,label:`DELETE`}]],required:!0}),url:x({sectionKey:`general`,groupPath:`config.general`,path:`config.url`,label:`Endpoint`,info:"Target URL. Only http/https. Type `/` to insert a field, secret, or constant reference.",guide:`http and https URLs only.`,placeholder:`https://api.example.com/v1/things`,inputType:`text`,minLength:1,maxLength:2048,expectedTagType:`string`,expectedTagFormat:`text`}),query_params:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.query_params`,label:`Query parameters`,info:"Appended to the URL. In the value column, type `/` to insert a field or secret reference.",keyLabel:`Key`,valueLabel:`Value`,keyPlaceholder:`page`,valuePlaceholder:`1`,maxKeys:50}),body:x({sectionKey:`general`,groupPath:`config.general`,path:`config.body`,label:`Body`,info:"Sent verbatim as the request body. Type `/` to insert a field, secret, or constant reference. Set Content-Type via Headers.",guide:`Sent verbatim as the request body. Set Content-Type via config.headers.`,placeholder:`{
|
|
83
83
|
"key": "value"
|
|
84
|
-
}`,inputType:`text`,maxLength:1e6,expectedTagType:`string`,expectedTagFormat:`text`,multiline:!0}).nullable(),headers:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.headers`,label:`Headers`,info:"In the value column, type `/` to insert a field or secret reference (e.g. `Bearer {{ secret โฆ }}`).",keyLabel:`Header`,valueLabel:`Value`,keyPlaceholder:`Authorization`,valuePlaceholder:`Bearer {{ secret โฆ }}`,maxKeys:50}),expected_response_schema:yd({sectionKey:`general`,groupPath:`config.advanced`,path:`config.expected_response_schema`,label:`Expected response shape`,description:`Optional JSON Schema. Successful responses that don't satisfy it are marked failed. Extra properties are always tolerated (whitelist).`,allowEmpty:!0}).optional(),output_fields:I(r.object({[iA.name]:D({fieldName:iA.name}),[aA.name]:D({fieldName:aA.name}),[oA.name]:D({fieldName:oA.name})}))})}),cA={"http-request-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:.001},mode:`always`}},ate=class extends V{pipeId=rA;payload;payloadSchema=sA;billableOperations=cA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`http-request-v1-pipe0`)}getTemplatedFields(){return[this.payload.config.url,this.payload.config.body,...Object.values(this.payload.config.query_params??{}),...Object.values(this.payload.config.headers??{})]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[iA.name]:this.catalogOutput(iA),[aA.name]:this.catalogOutput(aA),[oA.name]:this.catalogOutput(oA)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},ote=sA,ste={pipeId:rA,basePipe:W(rA),label:`HTTP request`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Make a generic GET/POST/PUT/PATCH/DELETE HTTP request and capture the JSON response. Optionally validate the response against a JSON schema.`,tags:[H.LOGIC,H.JSON,H.NEW],keywords:[`api`,`rest`,`webhook`,`fetch`,`get`,`post`,`endpoint`,`curl`],docPath:G(rA),hasSideEffects:!0,billableOperations:cA,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:rA,run_if:null,connector:null,config:{method:`GET`,url:``,query_params:{},body:``,headers:{},expected_response_schema:{},output_fields:{http_response_status:{alias:``,enabled:!0},http_response_body:{alias:``,enabled:!0},http_response_headers:{alias:``,enabled:!1}}}}},lA=`json:extract:multi@1`,uA=r.object({pipe_id:r.literal(lA),run_if:b(),connector:Ru(),config:r.object({json_extraction:nu()})}),dA={"json-extract-multi-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},cte=class extends V{pipeId=lA;payload;payloadSchema=uA;billableOperations=dA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`json-extract-multi-v1-pipe0`)}getInputRequirement(){return B({description:``,name:this.payload.config.json_extraction.field_name,format:null,label:``,type:`json`,resolvedName:this.payload.config.json_extraction.field_name})}getRawOutputFields(){let e={};for(let t of this.payload.config.json_extraction.extractions)e[t.output_field.name||t.output_field.name]={description:`Extracted value from JSON input field ${this.payload.config.json_extraction.field_name}.`,enabled:!0,format:t.output_field.format||null,label:t.output_field.label||`Extract JSON`,name:t.output_field.name,resolvedName:t.output_field.name,jsonMeta:null,type:t.output_field.type,isCatalogFIeld:!1,isPrimaryOutput:!1};return e}getConnectionsRequirements(){return[]}},lte=uA,ute={pipeId:lA,basePipe:W(lA),inputFieldMode:`config`,outputFieldMode:`config`,label:`JSON extract`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Extract nested JSON properties into new output fields.`,guide:'Deterministic JSON extraction โ PREFER this over prompt:run@1 whenever you need a value out of a JSON / known-schema column (no LLM, reproducible, schedulable). config.json_extraction.field_name is the source json column; each extraction has a JSONata `path` plus an output_field. Read the source column\'s JSON schema (get_pipe_schema / get_search_schema output fields, or get_sheet_schema) to author the path. Examples over a profile\'s employment_history array: `employment_history[is_current_employer=true][]` (array of current jobs โ output_field.type "json"); `employment_history[is_primary_current_employer=true].company_domain` (scalar โ output_field.type "string"). Set output_field.type to "json" for an object/array result, "string" for a scalar. CRITICAL for a list you will expand (e.g. into row:expandappend:sheet@1): a JSONata filter returns the matched ELEMENT when exactly one row matches but an ARRAY when several do โ so ALWAYS append the array constructor `[]` to force a consistent array in every row (`employment_history[is_current_employer=true][]`, not `...=true]`). Without it the column is an object in single-match rows and an array in others, and the downstream expand rejects the object rows. To confirm a NEW path resolves the shape you expect before running anything downstream, switch the sheet to SANDBOX (env:change@1) and run just this extraction โ it runs for REAL in sandbox (no writes, no spend), so you can read the actual result, fix the path, then switch back to production.',docPath:G(lA),tags:[H.JSON],keywords:[`parse`,`pick`,`path`,`nested`,`property`,`jsonata`,`unpack`],managedProviders:[`pipe0`],deprecatedProviders:[],allowedUserConnectionProviders:[],billableOperations:dA,defaultInputRequirement:null,defaultPayload:{pipe_id:lA,run_if:null,connector:null,config:{json_extraction:{field_name:``,extractions:[]}}}},fA=`lead:enroll:amplemarket@1`,pA={"lead-enroll-amplemarket-v1-amplemarket":{allowManagedConnection:!1,provider:`amplemarket`,credits:null,mode:null}},mA=_(`email`),hA=_(`profile_url`),gA=_(`amplemarket_sequence_id`),dte=new Set([`active`,`paused`]),fte=[{label:`Demo ยท Q3 Outbound`,value:`seq_sandbox_1`},{label:`Demo ยท Founder Intros`,value:`seq_sandbox_2`}],_A=1e4;async function vA({secret:e,signal:t}){let n=[],r=`https://api.amplemarket.com/sequences?page[size]=100`;for(let i=0;i<10&&r;i++){let i=await fetch(r,{headers:{Authorization:`Bearer ${e}`},signal:t});if(!i.ok){let e=await i.text();throw new q.HttpError({msg:e})}let a=await i.json();n.push(...a.sequences??[]);let o=a._links?.next?.href;r=o?new URL(o,`https://api.amplemarket.com`).toString():null}return n}const yA=r.object({pipe_id:r.literal(fA),connector:S(),run_if:b(),config:r.object({sequence_id:bd({sectionKey:`general`,required:!0,label:`Sequence`,groupPath:`config.general`,path:`config.sequence_id`,info:`The Amplemarket sequence to enroll the lead into (must be active or paused).`,guide:`The sequence must be active or paused.`,enabledIf:v(`amplemarket`),optionsDef:{requires:{connection:`amplemarket`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return fte;if(!t)throw new q.MissingSecretError({providerName:`amplemarket`});let r=(await vA({secret:t,signal:AbortSignal.timeout(_A)})).filter(e=>dte.has(e.status)).map(e=>({label:e.name,value:e.id}));return e?r.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):r},widgets:{provider_logo:{provider:`amplemarket`}}}}),input_fields:L(r.object({[mA.name]:T({fieldName:mA.name}),[hA.name]:T({fieldName:hA.name})})),custom_variables:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.custom_variables`,label:`Custom variables`,info:"Amplemarket dynamic fields, sent as the lead's data. The Variable name must match what your sequence references (e.g. `{{ pain_point }}`) โ case-sensitive, letters, digits, and underscores, no spaces. In the Value column, type `/` to insert a field or secret; leave a Value empty to skip that row. Amplemarket rejects the enrollment if the sequence references a dynamic field that is missing.",guide:"Amplemarket dynamic fields, sent as the lead's data. Keys must match what the sequence references (e.g. `{{ pain_point }}`) โ case-sensitive; letters, digits, and underscores only. An empty value skips that variable. Amplemarket rejects the enrollment when the sequence references a dynamic field that is missing.",keyLabel:`Variable`,valueLabel:`Value`,keyPlaceholder:`pain_point`,valuePlaceholder:`{{ pain_point }}`,maxKeys:50}).default({}),output_fields:I(r.object({[gA.name]:D({fieldName:gA.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.custom_variables??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`custom_variables`,n]});if(t.includes(`{{`)){r("Variable name must be a literal (no `{{ }}` templating).");continue}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){r(`Invalid Amplemarket dynamic-field name "${t}" โ use letters, digits, and underscores; no spaces.`);continue}t.length>255&&r(`Dynamic-field name "${t.slice(0,32)}โฆ" exceeds 255 characters.`)}})}),bA=e=>Of(B(K(mA,e)),Af(K(hA,e))),xA=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},SA=class extends V{pipeId=fA;payload;payloadSchema=yA;billableOperations=pA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`amplemarket`]}estimateBillableOperations(e){return U(e,`lead-enroll-amplemarket-v1-amplemarket`)}getCustomVariableValueTemplates(){return Object.values(this.payload.config.custom_variables??{})}getInputRequirement(){return Of(bA(this.payload.config),...xA(this.getCustomVariableValueTemplates()))}getSecretRequirements(){return J(this.getCustomVariableValueTemplates())}getConstantRequirements(){return mm(this.getCustomVariableValueTemplates())}getRawOutputFields(){return{[gA.name]:this.catalogOutput(gA)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitRatio:1,rateLimitOperation:`amplemarket_sequence_leads`,allowManagedConnection:!1}]}async getAgentContext({connectionSecrets:e,environment:t}){let n=this.payload.config.sequence_id,r=Array.isArray(n)?n[0]:n;if(!r)return null;if(t===`sandbox`)return{summary:`Sandbox: this sequence requires the dynamic fields first_name and pain_point โ set each via config.custom_variables.`,data:{sequence_name:`Demo ยท Q3 Outbound`,sequence_status:`active`,required_dynamic_fields:[`first_name`,`pain_point`],missing_dynamic_fields:[]}};let i=e.amplemarket;if(!i)throw new q.MissingSecretError({providerName:`amplemarket`});let a=await vA({secret:i,signal:AbortSignal.timeout(_A)}),o=a.find(e=>e.id===r);if(!o)return{summary:`No Amplemarket sequence with id "${r}" was found on this connection (checked ${a.length}). Re-resolve config.sequence_id via autocomplete_field before running โ don't guess the dynamic fields.`,data:{sequence_found:!1,required_dynamic_fields:[],missing_dynamic_fields:[]}};let s=o.dynamic_fields_used??[],c=new Set(Object.entries(this.payload.config.custom_variables??{}).filter(([e,t])=>e.trim()&&t?.trim()).map(([e])=>e.trim())),l=s.filter(e=>!c.has(e));return{summary:s.length===0?`Sequence "${o.name}" references no dynamic fields โ no custom variables to set.`:`Sequence "${o.name}" requires these dynamic fields โ set EVERY one via config.custom_variables (the value is a Liquid template over your sheet columns, e.g. {{ pain_point }}): ${s.join(`, `)}. Amplemarket rejects the enrollment if any of them is missing. The lead's email and LinkedIn URL travel via the input fields above, not here.`+(l.length>0?` Still unmapped: ${l.join(`, `)}.`:` All are mapped.`),data:{sequence_found:!0,sequence_name:o.name,sequence_status:o.status,required_dynamic_fields:s,missing_dynamic_fields:l}}}},CA=yA,wA={pipeId:fA,basePipe:W(fA),label:`Enroll Lead in Sequence`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Add a lead to an Amplemarket sequence, with custom dynamic fields.`,guide:`Enrollment is an external write: a completed cell means that row's person is in the live outbound sequence, and recomputing a completed cell re-enrolls them โ so scope any run over this pipe deliberately and rehearse a new flow in sandbox. Qualify rows by their data with run_if (e.g. a verified-email status).`,tags:[H.EMAIL],keywords:[`campaign`,`outreach`,`add`,`subscribe`,`outbound`,`email marketing`],docPath:G(fA),hasSideEffects:!0,billableOperations:pA,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`amplemarket`],defaultInputRequirement:bA(null),managedProviders:[],deprecatedProviders:[],defaultPayload:{pipe_id:fA,connector:{strategy:`first`,connections:[]},run_if:null,config:{sequence_id:``,input_fields:{email:{alias:``},profile_url:{alias:``}},custom_variables:{},output_fields:{amplemarket_sequence_id:{alias:``,enabled:!0}}}}},TA=`lead:enroll:lemlist@1`,EA={"lead-enroll-lemlist-v1-lemlist":{allowManagedConnection:!1,provider:`lemlist`,credits:null,mode:null}},DA=_(`email`),OA=_(`name`),kA=_(`first_name`),AA=_(`last_name`),jA=_(`company_name`),MA=_(`job_title`),NA=_(`profile_url`),PA=_(`phone`),FA=_(`lemlist_lead_id`),IA=_(`lemlist_enrollment_result`),LA=new Set([`email`,`firstName`,`lastName`,`name`,`companyName`,`jobTitle`,`linkedinUrl`,`phone`,`companyDomain`,`icebreaker`,`picture`]),RA=[{label:`Demo ยท Q3 Outbound`,value:`cam_sandbox_1`},{label:`Demo ยท Founder Intros`,value:`cam_sandbox_2`}],zA={requires:{connection:`lemlist`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return RA;if(!t)throw new q.MissingSecretError({providerName:`lemlist`});let r=await fetch(`https://api.lemlist.com/api/campaigns?limit=100`,{headers:{Authorization:`Basic ${t}`}});if(!r.ok){let e=await r.text();throw new q.HttpError({msg:e})}let i=await r.json(),a=(Array.isArray(i)?i:i.campaigns??[]).map(e=>({label:e.name,value:e._id}));return e?a.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):a},widgets:{provider_logo:{provider:`lemlist`}}};function BA(e){let t=new Set,n=new Set;try{let r=Vc(e);for(let[e,i]of Object.entries(r.inputs))(i.required?t:n).add(e)}catch{for(let n of e.matchAll(/\{\{\s*([A-Za-z_][A-Za-z0-9_]*)/g))t.add(n[1])}return{required:[...t],optional:[...n]}}const VA=r.object({pipe_id:r.literal(TA),connector:S(),run_if:b(),config:r.object({campaign_id:bd({sectionKey:`general`,required:!0,label:`Campaign`,groupPath:`config.general`,path:`config.campaign_id`,info:`The lemlist campaign to enroll the lead into.`,enabledIf:v(`lemlist`),optionsDef:zA}),input_fields:L(r.object({[DA.name]:T({fieldName:DA.name}),[OA.name]:T({fieldName:OA.name}),[kA.name]:T({fieldName:kA.name}),[AA.name]:T({fieldName:AA.name}),[jA.name]:T({fieldName:jA.name}),[MA.name]:T({fieldName:MA.name}),[NA.name]:T({fieldName:NA.name}),[PA.name]:T({fieldName:PA.name})})),custom_variables:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.custom_variables`,label:`Custom variables`,info:"lemlist custom variables, set on the lead after enrollment. The Variable name must match what your sequence references (e.g. `{{ painPoint }}`) โ case-sensitive, no spaces. In the Value column, type `/` to insert a field or secret; leave a Value empty to skip that row. Standard fields (company, job title, LinkedIn, phone) are set via the fields above, not here.",guide:"lemlist custom variables, set on the lead after enrollment. Keys must match what the sequence references (e.g. `{{ painPoint }}`) โ case-sensitive, no spaces. An empty value skips that variable. Standard fields (company, job title, LinkedIn, phone) are set via input_fields, not here.",keyLabel:`Variable`,valueLabel:`Value`,keyPlaceholder:`painPoint`,valuePlaceholder:`{{ pain_point }}`,maxKeys:50}),output_fields:I(r.object({[FA.name]:D({fieldName:FA.name}),[IA.name]:D({fieldName:IA.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.custom_variables??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`custom_variables`,n]});if(t.includes(`{{`)){r("Variable name must be a literal (no `{{ }}` templating).");continue}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){r(`Invalid lemlist variable name "${t}" โ use letters, digits, and underscores; no spaces.`);continue}LA.has(t)&&r(`"${t}" is a standard lemlist field โ set it via the dedicated field above, not as a custom variable.`)}})}),HA=e=>Of(B(K(DA,e)),kf(B(K(OA,e)),Of(B(K(kA,e)),B(K(AA,e)))),Af(K(jA,e)),Af(K(MA,e)),Af(K(NA,e)),Af(K(PA,e))),UA=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},WA=class extends V{pipeId=TA;payload;payloadSchema=VA;billableOperations=EA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`lemlist`]}estimateBillableOperations(e){return U(e,`lead-enroll-lemlist-v1-lemlist`)}getCustomVariableValueTemplates(){return Object.values(this.payload.config.custom_variables??{})}getInputRequirement(){return Of(HA(this.payload.config),...UA(this.getCustomVariableValueTemplates()))}getSecretRequirements(){return J(this.getCustomVariableValueTemplates())}getConstantRequirements(){return mm(this.getCustomVariableValueTemplates())}getRawOutputFields(){return{[FA.name]:this.catalogOutput(FA),[IA.name]:this.catalogOutput(IA)}}getConnectionsRequirements(){return[{provider:`lemlist`,rateLimitRatio:1,rateLimitOperation:`lemlist_create_lead`,allowManagedConnection:!1}]}async getAgentContext({connectionSecrets:e,environment:t}){let n=this.payload.config.campaign_id,r=Array.isArray(n)?n[0]:n;if(!r)return null;if(t===`sandbox`)return{summary:`Sandbox: this sequence references custom variables painPoint and eventLink โ set each via config.custom_variables.`,data:{required_custom_variables:[`painPoint`,`eventLink`],used_standard_fields:[`firstName`]}};let i=e.lemlist;if(!i)throw new q.MissingSecretError({providerName:`lemlist`});let a=await fetch(`https://api.lemlist.com/api/campaigns/${encodeURIComponent(r)}/sequences`,{headers:{Authorization:`Basic ${i}`},signal:AbortSignal.timeout(1e4)});if(!a.ok){let e=await a.text();throw new q.HttpError({msg:e})}let o=await a.json(),s=new Set;for(let e of Object.values(o??{}))for(let t of e?.steps??[])for(let e of[t?.subject,t?.message]){if(!e)continue;let{required:t,optional:n}=BA(e);for(let e of[...t,...n])s.add(e)}let c=[...s].filter(e=>LA.has(e)),l=[...s].filter(e=>!LA.has(e));return{summary:l.length===0?`This sequence uses only standard lemlist fields โ no custom variables to set.`:`This sequence requires these custom variables โ set each via config.custom_variables (the value is a Liquid template over your sheet columns, e.g. {{ pain_point }}): ${l.join(`, `)}. Standard fields (email, firstName, โฆ) are populated by the input fields above, not here.`,data:{required_custom_variables:l,used_standard_fields:c}}}},GA=VA,KA={pipeId:TA,basePipe:W(TA),label:`Enroll Lead in Campaign`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Add a lead to a lemlist campaign sequence, with custom variables.`,guide:`Enrollment is an external write: a completed cell means that row's person is in the live outbound campaign, and recomputing a completed cell re-enrolls them โ so scope any run over this pipe deliberately and rehearse a new flow in sandbox. Qualify rows by their data with run_if (e.g. a verified-email status).`,tags:[H.EMAIL],keywords:[`sequence`,`outreach`,`add`,`subscribe`,`outbound`,`email marketing`],docPath:G(TA),hasSideEffects:!0,billableOperations:EA,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`lemlist`],defaultInputRequirement:HA(null),managedProviders:[],deprecatedProviders:[],defaultPayload:{pipe_id:TA,connector:{strategy:`first`,connections:[]},run_if:null,config:{campaign_id:``,input_fields:{email:{alias:``},name:{alias:``},first_name:{alias:``},last_name:{alias:``},company_name:{alias:``},job_title:{alias:``},profile_url:{alias:``},phone:{alias:``}},custom_variables:{},output_fields:{lemlist_lead_id:{alias:``,enabled:!0},lemlist_enrollment_result:{alias:``,enabled:!1}}}}},qA=`message:send-direct:slack@1`,JA=_(`slack_direct_message_success`),YA=r.object({pipe_id:r.literal(qA),connector:S(),run_if:b(),config:r.object({slack_user_id:x({sectionKey:`general`,groupPath:`config.general`,path:`config.slack_user_id`,label:`Slack user ID`,info:"The member to DM (e.g. U024BE7LH) โ chains from the Slack channel members search. Type `@` to insert a field reference.",placeholder:`{{ slack_user_id }}`,inputType:`text`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`}),message:x({sectionKey:`general`,groupPath:`config.general`,path:`config.message`,label:`Message`,info:"The message body. Type `/` to insert a field, secret, or constant reference.",placeholder:`Hi {{ name }}, โฆ`,inputType:`text`,minLength:1,maxLength:4e4,expectedTagType:`string`,expectedTagFormat:`markdown`,multiline:!0}),output_fields:I(r.object({[JA.name]:D({fieldName:JA.name})}))})}),XA={"message-send-direct-slack-v1-slack":{allowManagedConnection:!1,provider:`slack`,credits:null,mode:null}},ZA=class extends V{pipeId=qA;payload;payloadSchema=YA;billableOperations=XA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`slack`]}estimateBillableOperations(e){return U(e,`message-send-direct-slack-v1-slack`)}getTemplatedFields(){return[this.payload.config.slack_user_id,this.payload.config.message]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[JA.name]:this.catalogOutput(JA)}}getConnectionsRequirements(){return[{provider:`slack`,rateLimitRatio:1,rateLimitOperation:`slack_post_message`,allowManagedConnection:!1}]}},QA=YA,$A={pipeId:qA,basePipe:W(qA),label:`Send direct message`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Send a Slack direct message to a workspace member.`,guide:"Send a Slack DM to one member per row. `slack_user_id` is the member's workspace ID โ the people:channelmembers:slack@1 search outputs it, which makes 'list channel members โ DM each' a two-step chain. The message body is templated: reference upstream fields with `{{ field_name }}` and stored secrets with `{{ SECRETS.KEY }}`. The DM comes from the pipe0 app (bots cannot impersonate people). Requires a Slack vault connection (call list_connections to find one).",tags:[H.CHAT],keywords:[`dm`,`direct message`,`private message`,`notify`,`outreach`,`chat`],docPath:G(qA),hasSideEffects:!0,billableOperations:XA,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`slack`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:qA,connector:{strategy:`first`,connections:[]},run_if:null,config:{slack_user_id:`{{ slack_user_id }}`,message:``,output_fields:{slack_direct_message_success:{alias:``,enabled:!0}}}}},ej=[{label:`#demo-general`,value:`C0SANDBOX001`},{label:`#demo-alerts`,value:`C0SANDBOX002`}],tj=`https://slack.com/api/conversations.list?limit=200&exclude_archived=true&types=public_channel,private_channel`,nj={requires:{connection:`slack`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return ej;if(!t)throw new q.MissingSecretError({providerName:`slack`});let r=[],i=null;for(let e=0;e<5;e++){let e=await fetch(i?`${tj}&cursor=${encodeURIComponent(i)}`:tj,{headers:{Authorization:`Bearer ${t}`}});if(!e.ok){let t=await e.text();throw new q.HttpError({msg:t})}let n=await e.json();if(!n.ok)throw new q.HttpError({msg:n.error??`slack_error`});for(let e of n.channels??[])r.push({label:`#${e.name}${e.is_ext_shared?` (Slack Connect)`:``}`,value:e.id});if(i=n.response_metadata?.next_cursor||null,!i)break}return e?r.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):r},widgets:{provider_logo:{provider:`slack`}}},rj=`message:send:slack@1`,ij=_(`slack_message_success`),aj=r.object({pipe_id:r.literal(rj),connector:S(),run_if:b(),config:r.object({channel_id:x({sectionKey:`general`,groupPath:`config.general`,path:`config.channel_id`,label:`Channel ID`,info:"Your connection must be authorized to post to this channel. Type `/` to insert a field, secret, or constant reference.",guide:`The connection must be authorized to post to this channel.`,placeholder:`C0123456789`,inputType:`text`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:nj}),message:x({sectionKey:`general`,groupPath:`config.general`,path:`config.message`,label:`Message`,info:"The message body. Type `/` to insert a field, secret, or constant reference.",placeholder:`Hi {{ name }}, โฆ`,inputType:`text`,minLength:1,maxLength:4e4,expectedTagType:`string`,expectedTagFormat:`markdown`,multiline:!0}),output_fields:I(r.object({[ij.name]:D({fieldName:ij.name})}))})}),oj={"message-send-slack-v1-slack":{allowManagedConnection:!1,provider:`slack`,credits:null,mode:null}},sj=class extends V{pipeId=rj;payload;payloadSchema=aj;billableOperations=oj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`slack`]}estimateBillableOperations(e){return U(e,`message-send-slack-v1-slack`)}getTemplatedFields(){return[this.payload.config.channel_id,this.payload.config.message]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[ij.name]:this.catalogOutput(ij)}}getConnectionsRequirements(){return[{provider:`slack`,rateLimitRatio:1,rateLimitOperation:`slack_post_message`,allowManagedConnection:!1}]}},cj=aj,lj={pipeId:rj,basePipe:W(rj),label:`Send message into channel`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Send a Slack message to a channel.`,guide:"Send a Slack message. The channel ID and message body are templated config fields โ reference upstream fields with `{{ field_name }}` and stored secrets with `{{ SECRETS.KEY }}`. Requires a Slack vault connection (call list_connections to find one).",tags:[H.CHAT],keywords:[`notify`,`notification`,`alert`,`post`,`chat`],docPath:G(rj),hasSideEffects:!0,billableOperations:oj,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`slack`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:rj,connector:{strategy:`first`,connections:[]},run_if:null,config:{channel_id:``,message:``,output_fields:{slack_message_success:{alias:``,enabled:!0}}}}},uj=`message:write@1`,dj=_(`message`),fj=`message-write-v1`,pj=jl(fj),mj=r.object({pipe_id:r.literal(uj),connector:C(),run_if:b(),config:r.object({template:Iu({sectionKey:`general`,label:`Template`,path:`config.template`,placeholder:X(`prompt`),groupPath:`config.prompt`,required:!0}),model:hd({sectionKey:`general`,label:`Model`,path:`config.model`,groupPath:`config.prompt`,billableOperations:pj,defaultValue:Sl}),output_fields:I(r.object({[dj.name]:D({fieldName:dj.name})}))})}),hj=class extends V{pipeId=uj;payload;payloadSchema=mj;billableOperations=pj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return wl(this.payload.config.model)}estimateBillableOperations(e){return Nl(e,{model:this.payload.config.model,prefix:fj,inputTokens:600,outputTokens:800})}getInputRequirement(){return pm([this.payload.config.template])}getSecretRequirements(){return J([this.payload.config.template])}getConstantRequirements(){return mm([this.payload.config.template])}getRawOutputFields(){return{[dj.name]:this.catalogOutput(dj)}}getConnectionsRequirements(){return Tl(this.payload.config.model)}},gj=mj,_j={pipeId:uj,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(uj),label:`Message writer`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`An AI agent specialized in composing messages for modern workplace communication platforms (Slack, Teams, Discord, etc.)`,guide:`AI message composer for Slack/Teams/Discord. Outputs: message. Pair with message:send:slack@1 to send.`,tags:[H.AI],keywords:[`ai`,`compose`,`draft`,`copywriting`,`outreach`,`slack`,`teams`],docPath:G(uj),defaultInputRequirement:null,billableOperations:pj,allowedUserConnectionProviders:El(),managedProviders:El(),deprecatedProviders:[],defaultPayload:{pipe_id:uj,connector:null,run_if:null,config:{model:Sl,template:``,output_fields:{message:{alias:``,enabled:!0}}}}},vj=_(`hubspot_object_id`),yj=_(`hubspot_associated_count`),bj=_(`hubspot_associated_objects`),xj=`object:associations:hubspot@1`,Sj=r.object({pipe_id:r.literal(xj),run_if:b(),connector:S(),config:r.object({from_object_type:bd({sectionKey:`general`,required:!0,label:`From object type`,groupPath:`config.general`,path:`config.from_object_type`,info:`The type of the source record (standard or custom object).`,enabledIf:v(`hubspot`),optionsDef:xm}),to_object_type:bd({sectionKey:`general`,required:!0,label:`To object type`,groupPath:`config.general`,path:`config.to_object_type`,info:`The type of the associated records to retrieve (standard or custom object).`,enabledIf:v(`hubspot`),optionsDef:xm}),association_label:bd({sectionKey:`general`,required:!1,label:`Association label`,groupPath:`config.general`,path:`config.association_label`,info:`Only follow associations with this label (labels are portal-specific, e.g. "Decision maker"). Empty = all associations.`,enabledIf:v(`hubspot`),optionsDef:Sm}),properties:nd({sectionKey:`general`,label:`Properties`,groupPath:`config.general`,path:`config.properties`,placeholder:`name`,info:`HubSpot internal property names of the TARGET object to include per associated record. Empty = HubSpot's default properties.`,guide:`HubSpot internal property names of the TARGET object, included per associated record. Empty = HubSpot's default property set.`}),limit:_d({sectionKey:`general`,label:`Limit`,groupPath:`config.general`,path:`config.limit`,info:``,min:1,max:100}).default(20),input_fields:L(r.object({[vj.name]:T({fieldName:vj.name})})),output_fields:I(r.object({[yj.name]:D({fieldName:yj.name}),[bj.name]:D({fieldName:bj.name})}))})}),Cj=e=>B(K(vj,e)),wj={"object-associations-hubspot-v1-hubspot":{allowManagedConnection:!1,credits:null,mode:null,provider:`hubspot`}},Tj=class extends V{pipeId=xj;payload;payloadSchema=Sj;billableOperations=wj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`hubspot`]}estimateBillableOperations(e){return U(e,`object-associations-hubspot-v1-hubspot`)}getInputRequirement(){return Cj(this.payload.config)}getRawOutputFields(){return{[yj.name]:this.catalogOutput(yj),[bj.name]:this.catalogOutput(bj)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitRatio:1,rateLimitOperation:`hubspot_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.to_object_type,n=Array.isArray(t)?t[0]??``:t;return Em(e,{objectTypes:[[n||`target object`,n||`0-1`]]})}},Ej=Sj,Dj={pipeId:xj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(xj),label:`HubSpot associated objects`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Retrieve the HubSpot records associated with a source record โ one level of joins across standard and custom objects (e.g. a company's deals, or a custom object linked to a company).`,tags:[H.FIELDS],keywords:[`crm`,`join`,`related`,`association`,`custom object`,`linked`],docPath:G(xj),guide:"Associations are HubSpot's joins โ the Search API never returns them, so this pipe is the way to fetch related records. The source-record input consumes `hubspot_object_id`, which every HubSpot surface emits (alias it to point at a differently named column); the from-object type must match the record the ID belongs to. Activities (notes, tasks, calls, meetings, emails) are associated objects too โ pick them as the to-object to read a record's timeline; when you leave properties empty for an engagement the pipe fills a sensible default set (timestamp + body/subject). Association labels are portal-specific; leave the label empty to follow all associations. Zero associations is a successful result (count = 0). Target-object properties use internal names โ call get_provider_context for the portal's catalog.",billableOperations:wj,allowedUserConnectionProviders:[`hubspot`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Cj(null),defaultPayload:{pipe_id:xj,connector:{strategy:`first`,connections:[]},run_if:null,config:{from_object_type:`0-2`,to_object_type:`0-3`,association_label:``,properties:[],limit:20,input_fields:{hubspot_object_id:{alias:``}},output_fields:{hubspot_associated_count:{alias:``,enabled:!0},hubspot_associated_objects:{alias:``,enabled:!0}}}}},Oj=_(`hubspot_object_id`),kj=_(`hubspot_update_result`),Aj=`object:update:hubspot@1`,jj=r.object({pipe_id:r.literal(Aj),run_if:b(),connector:S(),config:r.object({object_type:bd({sectionKey:`general`,required:!0,label:`Object type`,groupPath:`config.general`,path:`config.object_type`,info:`Standard objects plus this portal's custom objects (custom objects need HubSpot Enterprise).`,guide:`Standard objects plus this portal's custom objects. Custom objects need HubSpot Enterprise.`,enabledIf:v(`hubspot`),optionsDef:xm}),properties:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.properties`,label:`Property values`,info:"Property = the HubSpot internal name (e.g. `jobtitle`, custom properties too). In the Value column, type `/` to insert a field reference. Enumeration values must be existing internal option values (case-sensitive).",guide:"Keys are HubSpot internal property names (e.g. `jobtitle`), custom properties included.",keyLabel:`Property`,valueLabel:`Value`,keyPlaceholder:`jobtitle`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),ignore_blank_values:ud({sectionKey:`general`,defaultValue:!0,label:`Ignore blank values`,groupPath:`config.general`,path:`config.ignore_blank_values`,info:`ON: rows whose value renders empty are skipped, preserving CRM data. OFF: empty values CLEAR the property in HubSpot.`}),input_fields:L(r.object({[Oj.name]:T({fieldName:Oj.name})})),output_fields:I(r.object({[kj.name]:D({fieldName:kj.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.properties??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`properties`,n]});if(t.includes(`{{`)){r("Property name must be a literal internal name (no `{{ }}` templating).");continue}/^[a-z][a-z0-9_]*$/.test(t)||r(`Invalid HubSpot property name "${t}" โ internal names are lowercase letters, digits, and underscores.`)}})}),Mj=e=>B(K(Oj,e)),Nj={"object-update-hubspot-v1-hubspot":{allowManagedConnection:!1,credits:null,mode:null,provider:`hubspot`}},Pj=class extends V{pipeId=Aj;payload;payloadSchema=jj;billableOperations=Nj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`hubspot`]}estimateBillableOperations(e){return U(e,`object-update-hubspot-v1-hubspot`)}getTemplates(){return Object.values(this.payload.config.properties??{}).filter(e=>!!e)}getInputRequirement(){return Of(Mj(this.payload.config),..._m(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[kj.name]:this.catalogOutput(kj)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitRatio:1,rateLimitOperation:`hubspot_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object_type,n=Array.isArray(t)?t[0]??``:t;return Em(e,{objectTypes:[[n||`contacts`,n||`0-1`]],writableOnly:!0})}},Fj=jj,Ij={pipeId:Aj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(Aj),label:`HubSpot update object`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update a HubSpot record (standard or custom object) by its record ID, mapping columns to properties. Blank values are skipped by default so un-enriched cells never erase CRM data.`,tags:[H.FIELDS],keywords:[`crm`,`write`,`sync`,`record`,`property`,`custom object`],docPath:G(Aj),guide:"The object-ID input consumes `hubspot_object_id`, which every HubSpot surface emits โ chain from a match pipe (Lookup โ Update by ID is the canonical HubSpot recipe; there is no reliable upsert for companies). Call get_provider_context for the selected object type to see WRITABLE properties and enumeration option values โ HubSpot rejects read-only properties and unknown enum values (case-sensitive, never auto-created). Property writes fire the portal's workflows; rows where every value renders blank skip the API call entirely. With 'Ignore blank values' OFF, an empty value CLEARS the property in HubSpot.",billableOperations:Nj,allowedUserConnectionProviders:[`hubspot`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Mj(null),defaultPayload:{pipe_id:Aj,connector:{strategy:`first`,connections:[]},run_if:null,config:{object_type:`0-1`,properties:{},ignore_blank_values:!0,input_fields:{hubspot_object_id:{alias:``}},output_fields:{hubspot_update_result:{alias:``,enabled:!0}}}}},Lj=_(`company_domain`),Rj=_(`email`),zj=_(`salesforce_opportunities_found_count`),Bj=_(`salesforce_record_id`),Vj=_(`salesforce_opportunity_matches`),Hj=`opportunity:match:salesforce@1`,Uj=r.object({pipe_id:r.literal(Hj),run_if:b(),connector:S(),config:r.object({status:md({sectionKey:`general`,required:!1,label:`Opportunity status`,groupPath:`config.general`,path:`config.status`,description:`Filters on Salesforce's computed IsClosed / IsWon โ org-invariant, unlike stage names.`,options:[{label:`Any`,value:`any`},{label:`Open`,value:`open`},{label:`Won`,value:`won`},{label:`Lost`,value:`lost`}]}).default(`any`),stage:bd({sectionKey:`general`,required:!1,label:`Stage`,groupPath:`config.general`,path:`config.stage`,info:`Only match opportunities in this stage (the org's own OpportunityStage list). Empty = all stages.`,enabledIf:v(`salesforce`),optionsDef:ap}),custom_properties:nd({sectionKey:`general`,label:`Custom fields`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`NextStep`,info:"Field API names added to each match JSON under `custom_properties` (standard-set names are already top-level).",guide:"Field API names added to each match JSON under `custom_properties` โ standard-set names are already top-level."}),input_fields:L(r.object({[Lj.name]:T({fieldName:Lj.name}),[Rj.name]:T({fieldName:Rj.name})})),output_fields:I(r.object({[zj.name]:D({fieldName:zj.name}),[Bj.name]:D({fieldName:Bj.name}),[Vj.name]:D({fieldName:Vj.name})}))}).optional()}),Wj=e=>kf(B(K(Lj,e)),B(K(Rj,e))),Gj={"opportunity-match-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},Kj=class extends V{pipeId=Hj;payload;payloadSchema=Uj;billableOperations=Gj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`opportunity-match-salesforce-v1-salesforce`)}getInputRequirement(){return Wj(this.payload.config)}getRawOutputFields(){return{[zj.name]:this.catalogOutput(zj),[Bj.name]:this.catalogOutput(Bj),[Vj.name]:this.catalogOutput(Vj)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Opportunity`],includeStages:!0})}},qj=Uj,Jj={pipeId:Hj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(Hj),label:`Salesforce opportunity match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Find opportunities in your Salesforce org for a company (by domain, via the matched account) or person (by email, via contact roles) โ opportunities have no natural key of their own. A clean miss completes with count = 0.`,tags:[H.WEBSITE,H.EMAIL],keywords:[`crm`,`sfdc`,`deal`,`pipeline`,`lookup`,`exists`,`revenue`],docPath:G(Hj),guide:"Domain input resolves via account match โ Opportunity.AccountId (preferred when both inputs are present); email resolves via the contact's OpportunityContactRole (note: OCRs the connected user cannot see are silently missed under private sharing). Filter open/won via `status` (computed IsClosed/IsWon โ never assume a stage named 'Closed Won' exists); `stage` values are OpportunityStage ApiNames from get_provider_context. Contact roles ride each match as `contact_roles` edge metadata. found_count = 0 is a successful result.",billableOperations:Gj,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Wj(null),defaultPayload:{pipe_id:Hj,connector:{strategy:`first`,connections:[]},run_if:null,config:{status:`any`,stage:``,custom_properties:[],input_fields:{company_domain:{alias:``},email:{alias:``}},output_fields:{salesforce_opportunities_found_count:{alias:``,enabled:!0},salesforce_record_id:{alias:``,enabled:!0},salesforce_opportunity_matches:{alias:``,enabled:!0}}}}},Yj=`person:devprofileurl:profileurl:waterfall@1`,Xj=_(`profile_url`),Zj=_(`developer_profile_url`),Qj=_(`alternative_developer_profile_urls`),$j=[`crustdata`],eM=[{provider:`crustdata`}],tM=r.object({pipe_id:r.literal(Yj),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:eM,availableProviders:$j}),input_fields:L(r.object({[Xj.name]:T({fieldName:Xj.name})})),output_fields:I(r.object({[Zj.name]:D({fieldName:Zj.name}),[Qj.name]:D({fieldName:Qj.name})}))}).optional()}),nM=e=>B(K(Xj,e)),rM={"person-devprofileurl-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1.3,weight:1}},mode:`onSuccess`}},iM=class extends V{pipeId=Yj;payload;payloadSchema=tM;billableOperations=rM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return nM(this.payload.config)}getRawOutputFields(){return{[Zj.name]:this.catalogOutput(Zj,{isPrimaryOutput:!0}),[Qj.name]:this.catalogOutput(Qj,{isPrimaryOutput:!1})}}getConnectionsRequirements(){let e={crustdata:`crustdata_realtime_person_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},aM=tM,oM={pipeId:Yj,basePipe:W(Yj),label:`GitHub profile from LinkedIn URL`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a developer profile URL (e.g. GitHub) for any prospect using multiple data providers in a waterfall motion.`,docPath:G(Yj),tags:[H.LINKEDIN,H.WATERFALL,H.NEW],keywords:[`developer`,`dev`,`engineer`,`coder`,`git`],billableOperations:rM,defaultInputRequirement:nM(null),inputFieldMode:`static`,outputFieldMode:`static`,managedProviders:$j,allowedUserConnectionProviders:$j,deprecatedProviders:[],defaultPayload:{pipe_id:Yj,connector:null,run_if:null,config:{providers:eM,input_fields:{profile_url:{alias:``}},output_fields:{developer_profile_url:{alias:``,enabled:!0},alternative_developer_profile_urls:{alias:``,enabled:!1}}}}},sM=`person:email:validate:millionverifier@1`,cM=_(`email`),lM=_(`email_validation_status`),uM=_(`million_validation_match`),dM=r.object({pipe_id:r.literal(sM),connector:C(),run_if:b(),config:r.object({input_fields:L(r.object({[cM.name]:T({fieldName:cM.name})})),output_fields:I(r.object({[lM.name]:D({fieldName:lM.name}),[uM.name]:D({fieldName:uM.name})}))}).optional()}),fM=e=>B(K(cM,e)),pM={"person-email-validate-millionverifier-v1-millionverifier":{provider:`millionverifier`,allowManagedConnection:!0,credits:{default:.1,level1:{credits:.05,weight:1}},mode:`always`}},mM=class extends V{pipeId=sM;payload;payloadSchema=dM;billableOperations=pM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`millionverifier`]}estimateBillableOperations(e){return U(e,`person-email-validate-millionverifier-v1-millionverifier`)}getInputRequirement(){return fM(this.payload.config)}getRawOutputFields(){return{[lM.name]:this.catalogOutput(lM),[uM.name]:this.catalogOutput(uM)}}getConnectionsRequirements(){return[{provider:`millionverifier`,rateLimitRatio:1,rateLimitOperation:`millionverifier_generic`,allowManagedConnection:!0}]}},hM=dM,gM={pipeId:sM,basePipe:W(sM),label:`Validate email`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Verify email addresses to ensure is deliverability.`,tags:[H.EMAIL],keywords:[`verify`,`verification`,`deliverability`,`bounce`,`check`,`clean`],docPath:G(sM),billableOperations:pM,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`millionverifier`],managedProviders:[`millionverifier`],deprecatedProviders:[],defaultInputRequirement:fM(null),defaultPayload:{pipe_id:sM,connector:null,run_if:null,config:{input_fields:{email:{alias:``}},output_fields:{email_validation_status:{alias:``,enabled:!0},million_validation_match:{alias:``,enabled:!0}}}}},_M=`person:identity:email:waterfall@2`,vM=_(`email`),yM=_(`profile_url`),bM=_(`person_profile_match`),xM=[`hunter`,`surfe`,`crustdata`,`mixrank`],SM=[{provider:`hunter`},{provider:`surfe`},{provider:`crustdata`},{provider:`mixrank`}],CM=r.object({pipe_id:r.literal(_M),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:xM,defaultProviders:SM,sectionKey:`general`}),input_fields:L(r.object({[vM.name]:T({fieldName:vM.name})})),output_fields:I(r.object({[yM.name]:D({fieldName:yM.name}),[bM.name]:D({fieldName:bM.name})}))}).optional()}),wM=e=>B(K(vM,e)),TM={"person-identity-email-waterfall-v2-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:2.5,level1:{credits:1.25,weight:1}},mode:`onSuccess`},"person-identity-email-waterfall-v2-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:5,level1:{credits:3,weight:3}},mode:`onSuccess`},"person-identity-email-waterfall-v2-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5,level1:{credits:2.5,weight:1}},mode:`onSuccess`},"person-identity-email-waterfall-v2-mixrank":{provider:`mixrank`,allowManagedConnection:!0,credits:{default:1.5,level1:{credits:.75,weight:1}},mode:`onSuccess`}},EM=class extends V{pipeId=_M;payload;payloadSchema=CM;billableOperations=TM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return wM(this.payload.config)}getRawOutputFields(){return{[yM.name]:this.catalogOutput(yM),[bM.name]:this.catalogOutput(bM,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={hunter:`hunter_email_enrichment`,surfe:`surfe_people_enrich`,crustdata:`crustdata_realtime_person_enrich`,mixrank:`mixrank-person-match`},t=this.payload.config?.providers||[],n=t.map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0})),r=t.map((e,t)=>e.provider===`hunter`||e.provider===`surfe`?t:-1).filter(e=>e!==-1);return r.length>0&&n.push({provider:`amplemarket`,rateLimitRatio:Y(Math.min(...r)),rateLimitOperation:`amplemarket_people_find`,allowManagedConnection:!0}),n}},DM=CM,OM={pipeId:_M,basePipe:W(_M),label:`Full LinkedIn profile from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a person's LinkedIn profile URL and a standardized JSON profile from their email address.`,tags:[H.EMAIL,H.PEOPLE_PROFILES,H.LINKEDIN,H.WATERFALL],keywords:[`enrich`,`enrichment`,`reverse lookup`,`contact`,`identity`,`person`],docPath:G(_M),managedProviders:xM,deprecatedProviders:[],allowedUserConnectionProviders:xM,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:TM,defaultInputRequirement:wM(null),defaultPayload:{pipe_id:_M,connector:null,run_if:null,config:{providers:SM,input_fields:{email:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0},person_profile_match:{alias:``,enabled:!0}}}}},kM=_(`email`),AM=_(`attio_person_found`),jM=_(`attio_record_id`),MM=_(`attio_person_match`),NM=`person:match:attio@1`,PM=r.object({pipe_id:r.literal(NM),run_if:b(),connector:S(),config:r.object({custom_properties:nd({sectionKey:`general`,label:`Custom attributes`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`job_title`,optionsDef:Hp({target:`objects`,identifier:`people`}),info:'Attio attribute api_slugs to include in the match output (e.g. `job_title`, not "Job title"). Custom attributes work too and nest under `custom_properties`. Empty = a standard identity set.',guide:"Attribute api_slugs (e.g. `job_title`), custom attributes included. Picked attributes nest under `custom_properties` in the match output. Empty = a standard identity set."}),input_fields:L(r.object({[kM.name]:T({fieldName:kM.name})})),output_fields:I(r.object({[AM.name]:D({fieldName:AM.name}),[jM.name]:D({fieldName:jM.name}),[MM.name]:D({fieldName:MM.name})}))}).optional()}),FM=e=>B(K(kM,e)),IM={"person-match-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},LM=class extends V{pipeId=NM;payload;payloadSchema=PM;billableOperations=IM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`person-match-attio-v1-attio`)}getInputRequirement(){return FM(this.payload.config)}getRawOutputFields(){return{[AM.name]:this.catalogOutput(AM),[jM.name]:this.catalogOutput(jM),[MM.name]:this.catalogOutput(MM)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_query`,allowManagedConnection:!1}]}async getAgentContext(e){return Wp(e,{objects:[`people`]})}},RM=PM,zM={pipeId:NM,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(NM),label:`Attio person match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Check whether a person exists in your Attio workspace by email. email_addresses is Attio's unique identity attribute, so any address on a record matches exactly; a clean miss completes with found = false.`,tags:[H.EMAIL],keywords:[`crm`,`lookup`,`exists`,`dedupe`,`record`,`contact`],docPath:G(NM),guide:"Call get_provider_context first to discover this workspace's attributes; use attribute api_slugs verbatim (e.g. `job_title`). email_addresses is unique + multiselect โ one exact match covers every address on the record, so there is no secondary-email option. found = false is a successful result โ gate follow-up pipes with run_if on it. Chain the attio_record_id output into record:update:attio@1 or record:lookup:attio@1. No email column yet? Chain a work-email pipe (e.g. people:workemail:waterfall@1) ahead of this one and match on its output.",billableOperations:IM,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:FM(null),defaultPayload:{pipe_id:NM,connector:{strategy:`first`,connections:[]},run_if:null,config:{custom_properties:[],input_fields:{email:{alias:``}},output_fields:{attio_person_found:{alias:``,enabled:!0},attio_record_id:{alias:``,enabled:!0},attio_person_match:{alias:``,enabled:!0}}}}},BM=_(`email`),VM=_(`salesforce_person_found`),HM=_(`salesforce_record_id`),UM=_(`salesforce_person_match`),WM=`person:match:salesforce@1`,GM=r.object({pipe_id:r.literal(WM),run_if:b(),connector:S(),config:r.object({match_scope:md({sectionKey:`general`,required:!1,label:`Match scope`,groupPath:`config.general`,path:`config.match_scope`,description:`Which Salesforce person shapes to probe. Person Accounts are included automatically when the org has them.`,options:[{label:`Contacts and leads`,value:`contacts_and_leads`},{label:`Contacts only`,value:`contacts_only`},{label:`Leads only`,value:`leads_only`}]}).default(`contacts_and_leads`),custom_properties:nd({sectionKey:`general`,label:`Custom fields`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`Lead_Score__c`,info:"Field API names added to the match JSON under `custom_properties` (standard-set names are already top-level). Dotted parent paths like `Account.Industry` work.",guide:"Field API names added to the match JSON under `custom_properties` โ standard-set names are already top-level. Dotted parent paths like `Account.Industry` work."}),input_fields:L(r.object({[BM.name]:T({fieldName:BM.name})})),output_fields:I(r.object({[VM.name]:D({fieldName:VM.name}),[HM.name]:D({fieldName:HM.name}),[UM.name]:D({fieldName:UM.name})}))}).optional()}),KM=e=>B(K(BM,e)),qM={"person-match-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},JM=class extends V{pipeId=WM;payload;payloadSchema=GM;billableOperations=qM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`person-match-salesforce-v1-salesforce`)}getInputRequirement(){return KM(this.payload.config)}getRawOutputFields(){return{[VM.name]:this.catalogOutput(VM),[HM.name]:this.catalogOutput(HM),[UM.name]:this.catalogOutput(UM)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Contact`,`Lead`]})}},YM=GM,XM={pipeId:WM,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(WM),label:`Salesforce person match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Check whether a person exists in your Salesforce org by email โ across Contacts, Leads, and Person Accounts in one call, with deterministic precedence and converted-lead redirect. A clean miss completes with found = false.`,tags:[H.EMAIL],keywords:[`crm`,`sfdc`,`contact`,`lead`,`lookup`,`exists`,`dedupe`],docPath:G(WM),guide:"Matches by exact email in ONE API call across up to three shapes, with precedence: live Contact โ converted Lead's contact (is_converted_redirect = true) โ live Lead โ Person Account. found = false is a successful result โ gate follow-ups with run_if on it. `object_type` in the match JSON says which shape matched; chain `salesforce_record_id` into record:update:salesforce@1 or record:lookup:salesforce@1. Note: 'no match' can also mean the connected user lacks record access (private sharing).",billableOperations:qM,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:KM(null),defaultPayload:{pipe_id:WM,connector:{strategy:`first`,connections:[]},run_if:null,config:{match_scope:`contacts_and_leads`,custom_properties:[],input_fields:{email:{alias:``}},output_fields:{salesforce_person_found:{alias:``,enabled:!0},salesforce_record_id:{alias:``,enabled:!0},salesforce_person_match:{alias:``,enabled:!0}}}}},ZM=`person:mobile:profileurl:waterfall@1`,QM=_(`profile_url`),$M=_(`mobile`),eN=[`wiza`,`leadmagic`,`surfe`,`prospeo`,`amplemarket`,`crustdata`,`findymail`],tN=[`findymail`,`amplemarket`],nN=[{provider:`wiza`},{provider:`surfe`},{provider:`crustdata`}],rN=r.object({pipe_id:r.literal(ZM),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:nN,availableProviders:eN,deprecatedProviders:tN}),input_fields:L(r.object({[QM.name]:T({fieldName:QM.name})})),output_fields:I(r.object({[$M.name]:D({fieldName:$M.name})}))}).optional()}),iN=e=>B(K(QM,e)),aN={"person-mobile-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-prospeo":{provider:`prospeo`,allowManagedConnection:!0,credits:{default:7,level1:{credits:5.5,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:6,level1:{credits:4,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:7,level1:{credits:6,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:7},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:4,level1:{credits:3,weight:2}},mode:`onSuccess`}},oN=class extends V{pipeId=ZM;payload;payloadSchema=rN;billableOperations=aN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return iN(this.payload.config)}getRawOutputFields(){return{[$M.name]:this.catalogOutput($M,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_lookup`,surfe:`surfe_people_enrich`,prospeo:`prospeo_phone_number_lookup`,findymail:`findymail_phone_lookup`,amplemarket:`amplemarket_people_find`,crustdata:`crustdata_contact_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},sN=rN,cN={pipeId:ZM,basePipe:W(ZM),label:`Mobile number from LinkedIn profile`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a mobile phone number for any prospect using multiple data providers in a waterfall motion.`,docPath:G(ZM),tags:[H.PHONE,H.WATERFALL],keywords:[`phone`,`phone number`,`cell`,`direct dial`],billableOperations:aN,defaultInputRequirement:iN(null),inputFieldMode:`static`,outputFieldMode:`static`,managedProviders:eN,allowedUserConnectionProviders:eN,deprecatedProviders:tN,defaultPayload:{pipe_id:ZM,connector:null,run_if:null,config:{providers:nN,input_fields:{profile_url:{alias:``}},output_fields:{mobile:{alias:``,enabled:!0}}}}},lN=`person:mobile:workemail:waterfall@1`,uN=_(`work_email`),dN=_(`mobile`),fN=[`wiza`,`leadmagic`,`amplemarket`,`crustdata`],pN=[`amplemarket`],mN=[{provider:`wiza`},{provider:`leadmagic`},{provider:`crustdata`}],hN=r.object({pipe_id:r.literal(lN),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:fN,defaultProviders:mN,deprecatedProviders:pN}),input_fields:L(r.object({[uN.name]:T({fieldName:uN.name})})),output_fields:I(r.object({[dN.name]:D({fieldName:dN.name})}))}).optional()}),gN=e=>B(K(uN,e)),_N={"person-mobile-workemail-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:7,level1:{credits:6,weight:1}},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:4,level1:{credits:3,weight:2}},mode:`onSuccess`}},vN=class extends V{pipeId=lN;payload;payloadSchema=hN;billableOperations=_N;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return gN(this.payload.config)}getRawOutputFields(){return{[dN.name]:this.catalogOutput(dN,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_lookup`,amplemarket:`amplemarket_people_find`,crustdata:`crustdata_contact_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},yN=hN,bN={pipeId:lN,basePipe:W(lN),label:`Mobile number from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a mobile phone number for a prospect.`,tags:[H.PHONE,H.WATERFALL],keywords:[`phone`,`phone number`,`cell`,`direct dial`],docPath:G(lN),billableOperations:_N,defaultInputRequirement:gN(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:fN,managedProviders:fN,deprecatedProviders:pN,defaultPayload:{pipe_id:lN,connector:null,run_if:null,config:{providers:mN,input_fields:{work_email:{alias:``}},output_fields:{mobile:{alias:``,enabled:!0}}}}},xN=`person:name:join@1`,SN=_(`first_name`),CN=_(`last_name`),wN=_(`name`),TN=r.object({pipe_id:r.literal(xN),run_if:b(),connector:Ru(),config:r.object({input_fields:L(r.object({[SN.name]:T({fieldName:SN.name}),[CN.name]:T({fieldName:CN.name})})),output_fields:I(r.object({[wN.name]:D({fieldName:wN.name})}))}).optional()}),EN=e=>Of(K(SN,e),K(CN,e)),DN={"person-name-join-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},ON=class extends V{pipeId=xN;payload;payloadSchema=TN;billableOperations=DN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-name-join-v1-pipe0`)}getInputRequirement(){return EN(this.payload.config)}getRawOutputFields(){return{[wN.name]:this.catalogOutput(wN)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},kN=TN,AN={pipeId:xN,basePipe:W(xN),label:`Join name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Combine the first and last names of a prospect into a full name field.`,tags:[H.NAMES],keywords:[`combine`,`concatenate`,`merge`,`first`,`last`,`full`],docPath:G(xN),billableOperations:DN,defaultInputRequirement:EN(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:xN,run_if:null,connector:null,config:{input_fields:{first_name:{alias:``},last_name:{alias:``}},output_fields:{name:{alias:``,enabled:!0}}}}},jN=`person:name:split@1`,MN=_(`name`),NN=_(`first_name`),PN=_(`last_name`),FN=r.object({pipe_id:r.literal(jN),connector:Ru(),run_if:b(),config:r.object({input_fields:L(r.object({[MN.name]:T({fieldName:MN.name})})),output_fields:I(r.object({[NN.name]:D({fieldName:NN.name}),[PN.name]:D({fieldName:PN.name})}))}).optional()}),IN=e=>B(K(MN,e)),LN={"person-name-split-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},RN=class extends V{pipeId=jN;payload;payloadSchema=FN;billableOperations=LN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-name-split-v1-pipe0`)}getInputRequirement(){return IN(this.payload.config)}getRawOutputFields(){return{[NN.name]:this.catalogOutput(NN),[PN.name]:this.catalogOutput(PN)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},zN=FN,BN={pipeId:jN,basePipe:W(jN),label:`Split name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Split a full name into first and last name.`,tags:[H.NAMES],keywords:[`parse`,`separate`,`first`,`last`,`full`],docPath:G(jN),billableOperations:LN,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:IN(null),allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:jN,run_if:null,connector:void 0,config:{input_fields:{name:{alias:``}},output_fields:{first_name:{alias:``,enabled:!0},last_name:{alias:``,enabled:!0}}}}},VN=`person:personalemail:profileurl:waterfall@1`,HN=_(`profile_url`),UN=_(`personal_email`),WN=_(`alternate_personal_emails`),GN=[`leadmagic`,`mixrank`,`wiza`],KN=[{provider:`wiza`},{provider:`leadmagic`},{provider:`mixrank`}],qN=r.object({pipe_id:r.literal(VN),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:GN,defaultProviders:KN}),input_fields:L(r.object({[HN.name]:T({fieldName:HN.name})})),output_fields:I(r.object({[UN.name]:D({fieldName:UN.name}),[WN.name]:D({fieldName:WN.name})}))}).optional()}),JN=e=>B(K(HN,e)),YN={"person-personalemail-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-mixrank":{provider:`mixrank`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`}},XN=class extends V{pipeId=VN;payload;payloadSchema=qN;billableOperations=YN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return JN(this.payload.config)}getRawOutputFields(){return{[UN.name]:this.catalogOutput(UN,{isPrimaryOutput:!0}),[WN.name]:this.catalogOutput(WN)}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_personal_email_finder`,mixrank:`mixrank-person-match`,wiza:`wiza_individual_reveal`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},ZN=qN,QN={pipeId:VN,basePipe:W(VN),allowedUserConnectionProviders:GN,managedProviders:GN,deprecatedProviders:[],label:`Personal email from LinkedIn`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find the personal email address of a prospect by using a professional profile URL as input.`,tags:[H.EMAIL,H.PERSONAL_EMAIL],keywords:[`gmail`,`private`,`consumer`,`contact`],docPath:G(VN),billableOperations:YN,defaultInputRequirement:JN(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:VN,connector:null,run_if:null,config:{providers:KN,input_fields:{profile_url:{alias:``}},output_fields:{personal_email:{alias:``,enabled:!0},alternate_personal_emails:{alias:``,enabled:!1}}}}},$N=_(`profile_url`),eP=_(`post_list_string`),tP=_(`crustdata_post_list`),nP=`person:posts:content:crustdata@1`,rP=r.object({pipe_id:r.literal(nP),run_if:b(),connector:C(),config:r.object({limit:_d({path:`config.limit`,groupPath:`config.general`,max:100,min:1,sectionKey:`general`,info:``,label:`Limit`,legend:`Max. 100`}),input_fields:L(r.object({[$N.name]:T({fieldName:$N.name})})),output_fields:I(r.object({[eP.name]:D({fieldName:eP.name}),[tP.name]:D({fieldName:tP.name})}))}).optional()}),iP=e=>B(K($N,e)),aP={"person-posts-crustdata-v1-crustdata":{allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`,note:`1.5 credits per post. Posts are fetched in increments of 5.`,provider:`crustdata`}},oP=class extends V{pipeId=nP;payload;payloadSchema=rP;billableOperations=aP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`crustdata`]}estimateBillableOperations(e){return U(e,`person-posts-crustdata-v1-crustdata`)}getInputRequirement(){return iP(this.payload.config)}getRawOutputFields(){return{[eP.name]:this.catalogOutput(eP),[tP.name]:this.catalogOutput(tP)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitRatio:1,rateLimitOperation:`crustdata_realtime_post_fetch`,allowManagedConnection:!0}]}},sP=rP,cP={pipeId:nP,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(nP),label:`LinkedIn posts`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find list of recent LinkedIn posts.`,tags:[H.LINKEDIN],keywords:[`activity`,`content`,`social`,`updates`,`engagement`,`feed`],docPath:G(nP),billableOperations:aP,allowedUserConnectionProviders:[`crustdata`],managedProviders:[`crustdata`],deprecatedProviders:[],defaultInputRequirement:iP(null),defaultPayload:{pipe_id:nP,connector:null,run_if:null,config:{limit:5,input_fields:{profile_url:{alias:``}},output_fields:{crustdata_post_list:{alias:``,enabled:!0},post_list_string:{alias:``,enabled:!0}}}}},lP=`person:profile:waterfall@2`,uP=_(`person_profile_match`),dP=_(`primary_job_title`),fP=_(`primary_seniority`),pP=_(`primary_company_domain`),mP=_(`profile_url`),hP=[`crustdata`,`amplemarket`,`prospeo`],gP=[{provider:`crustdata`},{provider:`amplemarket`},{provider:`prospeo`}],_P=r.object({pipe_id:r.literal(lP),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:hP,defaultProviders:gP}),input_fields:L(r.object({[mP.name]:T({fieldName:mP.name})})),output_fields:I(r.object({[uP.name]:D({fieldName:uP.name}),[dP.name]:D({fieldName:dP.name}),[fP.name]:D({fieldName:fP.name}),[pP.name]:D({fieldName:pP.name})}))}).optional()}),vP=e=>B(K(mP,e)),yP={"person-profile-waterfall-v2-crustdata":{provider:`crustdata`,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`,allowManagedConnection:!0},"person-profile-waterfall-v2-amplemarket":{provider:`amplemarket`,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`,allowManagedConnection:!0},"person-profile-waterfall-v2-prospeo":{provider:`prospeo`,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`,allowManagedConnection:!0}},bP=class extends V{pipeId=lP;payload;payloadSchema=_P;billableOperations=yP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return vP(this.payload.config)}getRawOutputFields(){return{[uP.name]:this.catalogOutput(uP,{isPrimaryOutput:!0}),[dP.name]:this.catalogOutput(dP),[fP.name]:this.catalogOutput(fP),[pP.name]:this.catalogOutput(pP)}}getConnectionsRequirements(){let e={crustdata:`crustdata_realtime_person_enrich`,amplemarket:`amplemarket_people_find`,prospeo:`prospeo_social_profile_lookup`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},xP=_P,SP={pipeId:lP,basePipe:W(lP),label:`Full LinkedIn profile`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a standardized JSON representation of a LinkedIn profile.`,docPath:G(lP),tags:[H.LINKEDIN,H.WATERFALL],keywords:[`enrich`,`enrichment`,`json`,`scrape`,`bio`,`experience`,`education`],managedProviders:hP,deprecatedProviders:[],allowedUserConnectionProviders:hP,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:yP,defaultInputRequirement:vP(null),defaultPayload:{pipe_id:lP,run_if:null,connector:null,config:{providers:gP,input_fields:{profile_url:{alias:``}},output_fields:{person_profile_match:{alias:``,enabled:!0},primary_job_title:{alias:``,enabled:!0},primary_seniority:{alias:``,enabled:!0},primary_company_domain:{alias:``,enabled:!0}}}}},CP=_(`work_email`),wP=_(`crustdata_person_match`),TP=_(`crustdata_profile_match_score`),EP=`person:profile:workemail:crustdata@1`,DP=r.object({pipe_id:r.literal(EP),run_if:b(),connector:C(),config:r.object({input_fields:L(r.object({[CP.name]:T({fieldName:CP.name})})),output_fields:I(r.object({[wP.name]:D({fieldName:wP.name}),[TP.name]:D({fieldName:TP.name})}))}).optional()}),OP=e=>B(K(CP,e)),kP={"person-profile-workemail-crustdata-v1-crustdata":{allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`,provider:`crustdata`}},AP=class extends V{pipeId=EP;payload;payloadSchema=DP;billableOperations=kP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`crustdata`]}estimateBillableOperations(e){return U(e,`person-profile-workemail-crustdata-v1-crustdata`)}getInputRequirement(){return OP(this.payload.config)}getRawOutputFields(){return{[wP.name]:this.catalogOutput(wP),[TP.name]:this.catalogOutput(TP)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitRatio:1,rateLimitOperation:`crustdata_realtime_person_enrich`,allowManagedConnection:!0}]}},jP=DP,MP={pipeId:EP,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(EP),label:`Profile from work email`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find person profile by their work email address.`,tags:[H.EMAIL,H.PEOPLE_PROFILES],keywords:[`enrich`,`enrichment`,`reverse lookup`,`linkedin`,`person`],docPath:G(EP),billableOperations:kP,allowedUserConnectionProviders:[`crustdata`],managedProviders:[`crustdata`],deprecatedProviders:[],defaultInputRequirement:OP(null),defaultPayload:{pipe_id:EP,connector:null,run_if:null,config:{input_fields:{work_email:{alias:``}},output_fields:{crustdata_person_match:{alias:``,enabled:!0},crustdata_profile_match_score:{alias:``,enabled:!0}}}}},NP=`person:profileurl:email:waterfall@1`,PP=_(`email`),FP=_(`work_email`),IP=_(`profile_url`),LP=[`leadmagic`],RP=[{provider:`leadmagic`}],zP=r.object({pipe_id:r.literal(NP),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:RP,availableProviders:LP}),input_fields:L(r.object({[PP.name]:T({fieldName:PP.name}),[FP.name]:T({fieldName:FP.name})})),output_fields:I(r.object({[IP.name]:D({fieldName:IP.name})}))}).optional()}),BP=e=>kf(K(PP,e),K(FP,e)),VP={"person-profileurl-email-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3.5},mode:`onSuccess`}},HP=class extends V{pipeId=NP;payload;payloadSchema=zP;billableOperations=VP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return BP(this.payload.config)}getRawOutputFields(){return{[IP.name]:this.catalogOutput(IP,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_email_to_b2b_profile`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},UP=zP,WP={pipeId:NP,basePipe:W(NP),managedProviders:LP,deprecatedProviders:[],allowedUserConnectionProviders:LP,label:`LinkedIn URL from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find the URL for a prospect's LinkedIn profile from their personal or professional email address.`,guide:`Reverse email โ LinkedIn profile URL, nothing else. Unless the user specifically asks for a URL-only lookup, FAVOR person:identity:email:waterfall@2: same email input, also resolves profile_url, plus the full standardized person_profile_match JSON profile (employment and education history, seniority, location) in one call โ the richer grounding almost every downstream flow (profile enrichment, CRM match) needs anyway. Reach for THIS pipe when the profile URL is genuinely the only thing wanted.`,tags:[H.LINKEDIN],keywords:[`profile`,`reverse lookup`,`social`,`person`],docPath:G(NP),billableOperations:VP,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:BP(null),defaultPayload:{pipe_id:NP,run_if:null,connector:null,config:{providers:RP,input_fields:{email:{alias:``},work_email:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0}}}}},GP=`person:profileurl:name@1`,KP=_(`name`),qP=_(`company_name`),JP=_(`location_hint`),YP=_(`profile_url`),XP=r.object({pipe_id:r.literal(GP),connector:Ru(),run_if:b(),config:r.object({input_fields:L(r.object({[KP.name]:T({fieldName:KP.name}),[qP.name]:T({fieldName:qP.name}),[JP.name]:T({fieldName:JP.name})})),output_fields:I(r.object({[YP.name]:D({fieldName:YP.name})}))}).optional()}),ZP=e=>Of(B(K(KP,e)),B(K(qP,e)),Af(K(JP,e))),QP={"person-profileurl-name-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:.6},mode:`always`}},$P=class extends V{pipeId=GP;payload;payloadSchema=XP;billableOperations=QP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-profileurl-name-v1-pipe0`)}getInputRequirement(){return ZP(this.payload.config)}getRawOutputFields(){return{[YP.name]:this.catalogOutput(YP)}}getConnectionsRequirements(){return[{provider:`serper`,rateLimitRatio:1,rateLimitOperation:`serper_search`,allowManagedConnection:!0}]}},eF=XP,tF={pipeId:GP,basePipe:W(GP),label:`LinkedIn URL from name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],description:`Find the LinkedIn profile URL by using the prospect's name as input.`,docPath:G(GP),tags:[H.LINKEDIN],keywords:[`profile`,`social`,`lookup`,`person`],billableOperations:QP,defaultInputRequirement:ZP(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:GP,connector:void 0,run_if:null,config:{input_fields:{company_name:{alias:``},location_hint:{alias:``},name:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0}}}}},nF=`person:workemail:profileurl:waterfall@1`,rF=_(`profile_url`),iF=_(`work_email`),aF=_(`email_validation_status`),oF=[`hunter`,`amplemarket`,`wiza`,`findymail`,`leadmagic`,`crustdata`,`surfe`],sF=[`findymail`],cF=[{provider:`wiza`},{provider:`amplemarket`},{provider:`crustdata`},{provider:`surfe`}],lF=r.object({pipe_id:r.literal(nF),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:oF,defaultProviders:cF,deprecatedProviders:sF,sectionKey:`general`}),allow_catch_all_emails:ud({path:`config.allow_catch_all_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:``,label:`Allow catch-all emails`}),allow_risky_emails:ud({path:`config.allow_risky_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`Higher chance of bouncing or being marked as spam.`,guide:`Risky emails carry a higher chance of bouncing or being marked as spam.`,label:`Allow risky emails`}),input_fields:L(r.object({[rF.name]:T({fieldName:rF.name})})),output_fields:I(r.object({[iF.name]:D({fieldName:iF.name}),[aF.name]:D({fieldName:aF.name})}))}).optional()}),uF=e=>B(K(rF,e)),dF={"person-workemail-profileurl-waterfall-v1-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:2,level1:{credits:.7,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:2.5,level1:{credits:1.5,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:2.5},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:1.5,level1:{credits:1,weight:2}},mode:`onSuccess`}},fF=class extends V{pipeId=nF;payload;payloadSchema=lF;billableOperations=dF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return uF(this.payload.config)}getRawOutputFields(){return{[iF.name]:this.catalogOutput(iF,{isPrimaryOutput:!0}),[aF.name]:this.catalogOutput(aF,{isPrimaryOutput:!1})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_b2b_lookup`,hunter:`prospeo_email_lookup`,amplemarket:`amplemarket_people_find`,findymail:`findymail_email_b2b_lookup`,crustdata:`crustdata_realtime_person_enrich`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},pF=lF,mF={pipeId:nF,basePipe:W(nF),label:`Work email from LinkedIn URL`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find work email addresses from B2B profile.`,tags:[H.EMAIL,H.WORK_EMAIL,H.WATERFALL],keywords:[`business email`,`b2b`,`corporate`,`contact`],docPath:G(nF),managedProviders:oF,allowedUserConnectionProviders:oF,deprecatedProviders:sF,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:dF,defaultInputRequirement:uF(null),defaultPayload:{pipe_id:nF,connector:null,run_if:null,config:{providers:cF,allow_catch_all_emails:!0,allow_risky_emails:!0,input_fields:{profile_url:{alias:``}},output_fields:{work_email:{alias:``,enabled:!0},email_validation_status:{alias:``,enabled:!1}}}}},hF=`person:workemail:waterfall@1`,gF=_(`name`),_F=_(`company_domain`),vF=_(`company_name`),yF=_(`work_email`),bF=_(`email_validation_status`),xF=[`leadmagic`,`wiza`,`prospeo`,`amplemarket`,`hunter`,`icypeas`,`findymail`],SF=[`icypeas`,`findymail`],CF=[{provider:`leadmagic`},{provider:`wiza`},{provider:`prospeo`},{provider:`amplemarket`},{provider:`hunter`}],wF={"person-workemail-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:.5,level1:{credits:.25,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-icypeas":{provider:`icypeas`,allowManagedConnection:!0,credits:{default:.5,level1:{credits:.25,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:2}},mode:`onSuccess`},"person-workemail-waterfall-v1-prospeo":{provider:`prospeo`,allowManagedConnection:!0,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:1.5,level1:{credits:.75,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:1.3,level1:{credits:.75,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`}},TF=r.object({pipe_id:r.literal(hF),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:xF,defaultProviders:CF,deprecatedProviders:SF,sectionKey:`general`,providerCredits:zf(wF,xF)}),allow_catch_all_emails:ud({path:`config.allow_catch_all_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`Catch-alls appear valid but remain undeliverable-risk.`,guide:`Catch-all emails appear valid but remain undeliverable-risk.`,label:`Allow catch-all emails`}),allow_risky_emails:ud({path:`config.allow_risky_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`DNS configuration and spam reputation may flag emails as high-risk.`,guide:`DNS configuration and spam reputation may flag an email as high-risk.`,label:`Allow risky emails`}),input_fields:L(r.object({[gF.name]:T({fieldName:gF.name}),[_F.name]:T({fieldName:_F.name}),[vF.name]:T({fieldName:vF.name})})),output_fields:I(r.object({[yF.name]:D({fieldName:yF.name}),[bF.name]:D({fieldName:bF.name})}))}).optional()}),EF=e=>Of(B(K(gF,e)),B(K(_F,e))),DF=class extends V{pipeId=hF;payload;payloadSchema=TF;billableOperations=wF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return EF(this.payload.config)}getRawOutputFields(){return{[yF.name]:this.catalogOutput(yF,{isPrimaryOutput:!0}),[bF.name]:this.catalogOutput(bF,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_email_lookup`,wiza:`wiza_individual_reveal`,prospeo:`prospeo_email_lookup`,icypeas:`icypeas_email_lookup`,findymail:`findymail_email_lookup`,hunter:`hunter_email_finder`,amplemarket:`amplemarket_people_find`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},OF=TF,kF={pipeId:hF,basePipe:W(hF),label:`Work email from name`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find work email addresses in a waterfall motion.`,tags:[H.EMAIL,H.WORK_EMAIL,H.WATERFALL],keywords:[`business email`,`b2b`,`corporate`,`contact`],docPath:G(hF),managedProviders:xF,deprecatedProviders:SF,allowedUserConnectionProviders:xF,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:wF,defaultInputRequirement:EF(null),defaultPayload:{pipe_id:hF,connector:null,run_if:null,config:{providers:CF,allow_catch_all_emails:!0,allow_risky_emails:!0,input_fields:{company_name:{alias:``},company_domain:{alias:``},name:{alias:``}},output_fields:{work_email:{alias:``,enabled:!0},email_validation_status:{alias:``,enabled:!1}}}}},AF=`post:create:x@1`,jF=_(`x_post_id`),MF=_(`x_post_url`),NF=/https?:\/\/\S+|\b[\w-]+(\.[\w-]+)*\.[a-z]{2,}\/\S*/i,PF={"post-create-x-v1-x":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:1},note:`X bills $0.015 per plain post to pipe0's app; never charged for a post that didn't go out.`},"post-create-x-v1-x-link":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:10},note:`X bills posts containing a link at $0.20 (13x a plain post). The runner picks this op when X's create response shows the text rewritten with a t.co link โ X's own linkifier verdict, not a local guess.`}},FF=r.object({pipe_id:r.literal(AF),connector:S(),run_if:b(),config:r.object({text:x({sectionKey:`general`,groupPath:`config.general`,path:`config.text`,label:`Post text`,info:"Standard accounts are capped at 280 characters by X (URLs count as 23); over-limit posts fail per row. Posts containing a link bill 10 credits instead of 1. Type `/` to insert a field, secret, or constant reference.",guide:`Standard X accounts cap posts at 280 characters (URLs count as 23) โ over-limit rows fail. A link anywhere in the rendered text bills 10 credits instead of 1.`,placeholder:`We just shipped {{ feature_name }} โ โฆ`,inputType:`text`,minLength:1,maxLength:25e3,expectedTagType:`string`,expectedTagFormat:`text`,multiline:!0}),output_fields:I(r.object({[jF.name]:D({fieldName:jF.name}),[MF.name]:D({fieldName:MF.name})}))})}),IF=class extends V{pipeId=AF;payload;payloadSchema=FF;billableOperations=PF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`x`]}estimateBillableOperations(e){return[{billableOperation:NF.test(this.payload.config.text)?`post-create-x-v1-x-link`:`post-create-x-v1-x`,quantity:e.count}]}getTemplatedFields(){return[this.payload.config.text]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[jF.name]:this.catalogOutput(jF),[MF.name]:this.catalogOutput(MF)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitRatio:1,rateLimitOperation:`x_post_write`,allowManagedConnection:!1}]}},LF=FF,RF={pipeId:AF,basePipe:W(AF),label:`Post on X`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Publish a post from your connected X (Twitter) account.`,guide:"Publishes a NEW post to the connected account's own timeline (BYO connection required). The text is a templated field โ reference upstream fields with `{{ field_name }}`. 1 credit per post, 10 credits when the text contains a link (X bills link posts at 13x). Rerunning a completed cell POSTS AGAIN โ this pipe has side effects. X policy: posting your own (scheduled) content is fine; never post identical content across multiple accounts. Replies are deliberately NOT supported โ X prohibits unsolicited automated replies and requires prior approval for AI-generated ones, so do not try to build reply automations with this pipe.",tags:[H.X,H.NEW],keywords:[`tweet`,`twitter`,`publish`,`share`,`social`,`announce`],docPath:G(AF),hasSideEffects:!0,billableOperations:PF,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`x`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:AF,connector:{strategy:`first`,connections:[]},run_if:null,config:{text:``,output_fields:{x_post_id:{alias:``,enabled:!0},x_post_url:{alias:``,enabled:!0}}}}},zF=_(`x_username`),BF=_(`post_list_string`),VF=_(`x_post_list`),HF=`profile:posts:x@1`,UF=r.object({pipe_id:r.literal(HF),run_if:b(),connector:S(),config:r.object({limit:_d({path:`config.limit`,groupPath:`config.general`,max:35,min:5,sectionKey:`general`,info:``,label:`Limit`,legend:`5 - 35`}),input_fields:L(r.object({[zF.name]:T({fieldName:zF.name})})),output_fields:I(r.object({[BF.name]:D({fieldName:BF.name}),[VF.name]:D({fieldName:VF.name})}))}).optional()}),WF=e=>B(K(zF,e)),GF={"profile-posts-x-v1-x":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:.25},note:`0.25 credits per post fetched (X bills $0.005/post plus a $0.01 username lookup to pipe0's app). Billed once per fetched post.`}},KF=class extends V{pipeId=HF;payload;payloadSchema=UF;billableOperations=GF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`x`]}estimateBillableOperations(e){let t=this.payload.config?.limit??10;return[{billableOperation:`profile-posts-x-v1-x`,quantity:e.count*t}]}getInputRequirement(){return WF(this.payload.config)}getRawOutputFields(){return{[BF.name]:this.catalogOutput(BF),[VF.name]:this.catalogOutput(VF)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitRatio:2,rateLimitOperation:`x_user_timeline_read`,allowManagedConnection:!1}]}},qF=UF,JF={pipeId:HF,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(HF),label:`X posts`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find the recent X (Twitter) posts of an account by handle.`,guide:`Fetches up to 35 recent posts for the x_username input (a bare handle; a leading @ or an x.com profile URL is normalized). Runs on the user's connected X account at 0.25 credits per fetched post. x_post_list rows are the same x_post_match objects the X post search returns โ linked_urls carries expanded link targets (post text only shows t.co addresses) and author.user_id is the rename-stable account key; post_list_string is just the texts for prompting.`,tags:[H.X,H.NEW],keywords:[`tweets`,`twitter`,`activity`,`content`,`timeline`,`feed`],docPath:G(HF),billableOperations:GF,allowedUserConnectionProviders:[`x`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:WF(null),defaultPayload:{pipe_id:HF,connector:{strategy:`first`,connections:[]},run_if:null,config:{limit:10,input_fields:{x_username:{alias:``}},output_fields:{x_post_list:{alias:``,enabled:!0},post_list_string:{alias:``,enabled:!0}}}}},YF=`prompt:run@1`,XF=`prompt-run-v1`,ZF=jl(XF),QF=r.object({pipe_id:r.literal(YF),connector:C(),run_if:b(),config:r.object({prompt:Fu({sectionKey:`general`,path:`config.prompt`,placeholder:X(`prompt`),groupPath:`config.prompt`,supportedTags:[`input`,`output`]}),model:hd({sectionKey:`general`,label:`Model`,path:`config.model`,groupPath:`config.prompt`,billableOperations:ZF,defaultValue:xl})})}),$F=class extends V{pipeId=YF;payload;payloadSchema=QF;billableOperations=ZF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return wl(this.payload.config.model)}estimateBillableOperations(e){return Nl(e,{model:this.payload.config.model,prefix:XF,inputTokens:600,outputTokens:800})}getInputRequirement(){return pm([this.payload.config.prompt.template])}getSecretRequirements(){return J([this.payload.config.prompt.template])}getConstantRequirements(){return mm([this.payload.config.prompt.template])}getRawOutputFields(){let e=this.payload.config.prompt.template,t=this.payload.config.prompt.json_schemas??{},n={},r;try{r=Vc(e)}catch{return n}for(let e of r.outputs){let r=e.type;if(r===`json`){let i=e.schemaRef?t[e.schemaRef]:void 0;n[e.name]={enabled:!0,name:e.name,label:e.name,resolvedName:e.name,type:r,description:e.description,jsonMeta:{zodSchema:i,exampleValue:null},format:null,isCatalogFIeld:!1,isPrimaryOutput:!1}}else n[e.name]={enabled:!0,name:e.name,label:e.name,resolvedName:e.name,type:r,description:e.description,jsonMeta:null,format:e.format??null,isCatalogFIeld:!1,isPrimaryOutput:!1}}return n}getConnectionsRequirements(){return Tl(this.payload.config.model)}},eI=QF,tI={pipeId:YF,inputFieldMode:`config`,outputFieldMode:`config`,basePipe:W(YF),label:`AI prompt`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,description:`Executes configurable AI prompts with structured output fields.`,guide:`General-purpose AI prompt runner. Inputs and outputs are fully dynamic โ defined by the tags in the prompt template. For extracting a value from a JSON / known-schema field, do NOT use this โ use the deterministic json:extract:multi@1 (JSONata) instead: it's cheaper, reproducible, and runs on a schedule with no model. Reserve prompt:run@1 for genuine judgment or free-text generation (classify, summarize, rewrite).`,tags:[H.AI],keywords:[`llm`,`gpt`,`chatgpt`,`openai`,`generate`,`classify`,`extract`],docPath:G(YF),defaultInputRequirement:null,billableOperations:ZF,allowedUserConnectionProviders:El(),managedProviders:El(),deprecatedProviders:[],defaultPayload:{pipe_id:YF,connector:null,run_if:null,config:{model:xl,prompt:{template:``,json_schemas:{}}}}},nI=_(`salesforce_record_id`),rI=_(`salesforce_record_created`),iI=_(`salesforce_record_match`),aI=`record:assert:salesforce@1`,oI=r.object({pipe_id:r.literal(aI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can create/update.`,guide:`Standard and custom objects the connected user can create/update.`,enabledIf:v(`salesforce`),optionsDef:rp({updateableOnly:!0})}),external_id_field:bd({sectionKey:`general`,required:!0,label:`External ID field`,groupPath:`config.general`,path:`config.external_id_field`,info:`The object's External-ID field anchoring the upsert (fields marked External ID in Setup). If the picker is empty, the object has none โ create one in Setup; it is the ecosystem-standard idempotency anchor.`,guide:`Only fields marked External ID in Setup qualify. An object with none needs one created in Setup โ the ecosystem-standard idempotency anchor.`,enabledIf:v(`salesforce`),optionsDef:ip}),external_id_value:x({sectionKey:`general`,label:`External ID value`,inputType:`text`,expectedTagType:`string`,expectedTagFormat:`text`,groupPath:`config.general`,path:`config.external_id_value`,placeholder:`{{ company_domain }}`,info:"The value to match/create on โ a literal or a `{{ column }}` reference.",guide:"The value to match/create on โ a literal or a `{{ field }}` tag."}),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Field values`,info:`Field = the Salesforce API name. Include every field required at create (e.g. Name on Account, LastName+Company on Lead) โ a create with missing required fields fails and names them. Blank values are skipped, never cleared.`,guide:`Keys are Salesforce field API names. Include every field required at create โ e.g. Name on Account, LastName+Company on Lead.`,keyLabel:`Field API name`,valueLabel:`Value`,keyPlaceholder:`Name`,valuePlaceholder:`{{ company_name }}`,maxKeys:50}),bypass_duplicate_alerts:ud({sectionKey:`general`,defaultValue:!1,label:`Bypass duplicate alerts`,groupPath:`config.general`,path:`config.bypass_duplicate_alerts`,info:`Acknowledge ALERT-mode duplicate rules and save anyway. BLOCK-mode rules can never be bypassed โ those errors list the matching records.`}),output_fields:I(r.object({[nI.name]:D({fieldName:nI.name}),[rI.name]:D({fieldName:rI.name}),[iI.name]:D({fieldName:iI.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.values??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`values`,n]});if(t.includes(`{{`)){r("Field name must be a literal API name (no `{{ }}` templating).");continue}if(t.includes(`.`)){r(`Invalid field name "${t}" โ dotted paths cannot be written; set the lookup ID field (e.g. AccountId) instead.`);continue}/^[a-zA-Z][a-zA-Z0-9_]*$/.test(t)||r(`Invalid Salesforce field name "${t}" โ API names are letters, digits, and underscores (custom fields end in __c).`)}})}),sI={"record-assert-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},cI=class extends V{pipeId=aI;payload;payloadSchema=oI;billableOperations=sI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-assert-salesforce-v1-salesforce`)}getTemplates(){return[this.payload.config.external_id_value,...Object.values(this.payload.config.values??{})].filter(e=>!!e)}getInputRequirement(){return Of(...pp(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[nI.name]:this.catalogOutput(nI),[rI.name]:this.catalogOutput(rI),[iI.name]:this.catalogOutput(iI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Account`],writableOnly:!0})}},lI=oI,uI={pipeId:aI,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(aI),label:`Salesforce assert record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:"Create-or-update (upsert) a Salesforce record anchored on an External ID field โ Salesforce's native idempotent write. One matching record updates, none creates; `created` says which happened.",tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`upsert`,`create`,`write`,`sync`,`idempotent`],docPath:G(aI),guide:"The upsert is anchored on the External-ID field: no match creates, one match updates, MULTIPLE matches fail with the record IDs and write nothing (resolve duplicates or use record:update). On the create path Salesforce enforces required fields (the error names them) and duplicate rules may block the save (`bypass_duplicate_alerts` acknowledges ALERT-mode rules only). Call get_provider_context for the object's writable fields; blanks skip, never clear. `salesforce_record_created` = true means a new record โ the fresh record rides the output JSON.",billableOperations:sI,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Of(),defaultPayload:{pipe_id:aI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Account`,external_id_field:``,external_id_value:`{{ company_domain }}`,values:{},bypass_duplicate_alerts:!1,output_fields:{salesforce_record_id:{alias:``,enabled:!0},salesforce_record_created:{alias:``,enabled:!0},salesforce_record_match:{alias:``,enabled:!0}}}}},dI=_(`attio_record_id`),fI=_(`attio_record_found`),pI=_(`attio_record_match`),mI=`record:lookup:attio@1`,hI=r.object({pipe_id:r.literal(mI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),input_fields:L(r.object({[dI.name]:T({fieldName:dI.name})})),output_fields:I(r.object({[fI.name]:D({fieldName:fI.name}),[pI.name]:D({fieldName:pI.name})}))})}),gI=e=>B(K(dI,e)),_I={"record-lookup-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},vI=class extends V{pipeId=mI;payload;payloadSchema=hI;billableOperations=_I;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-lookup-attio-v1-attio`)}getInputRequirement(){return gI(this.payload.config)}getRawOutputFields(){return{[fI.name]:this.catalogOutput(fI),[pI.name]:this.catalogOutput(pI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`})}},yI=hI,bI={pipeId:mI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(mI),label:`Attio lookup record`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Fetch one Attio record of any object (custom objects included) by its record ID โ the full record with every attribute. A missing record completes with found = false.`,tags:[H.NEW],keywords:[`crm`,`get`,`fetch`,`by id`,`custom object`,`read`],docPath:G(mI),guide:"Map the record's Attio ID into the `attio_record_id` input โ typically chained from a match pipe or search that outputs it. The output JSON carries ALL of the record's attribute values under `values` (id and deep-link url beside them) โ extract specific attributes with json:extract downstream. found = false is a successful result. Works on every object in the workspace, custom objects included.",billableOperations:_I,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:gI(null),defaultPayload:{pipe_id:mI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,input_fields:{attio_record_id:{alias:``}},output_fields:{attio_record_found:{alias:``,enabled:!0},attio_record_match:{alias:``,enabled:!0}}}}},xI=_(`salesforce_record_id`),SI=_(`salesforce_record_found`),CI=_(`salesforce_record_match`),wI=`record:lookup:salesforce@1`,TI=r.object({pipe_id:r.literal(wI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can query.`,guide:`Standard and custom objects the connected user can query.`,enabledIf:v(`salesforce`),optionsDef:rp()}),input_fields:L(r.object({[xI.name]:T({fieldName:xI.name})})),output_fields:I(r.object({[SI.name]:D({fieldName:SI.name}),[CI.name]:D({fieldName:CI.name})}))})}),EI=e=>B(K(xI,e)),DI={"record-lookup-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},OI=class extends V{pipeId=wI;payload;payloadSchema=TI;billableOperations=DI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-lookup-salesforce-v1-salesforce`)}getInputRequirement(){return EI(this.payload.config)}getRawOutputFields(){return{[SI.name]:this.catalogOutput(SI),[CI.name]:this.catalogOutput(CI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Contact`]})}},kI=TI,AI={pipeId:wI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(wI),label:`Salesforce record lookup`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Fetch a full Salesforce record (any standard or custom object) by its record ID โ every field visible to the connected user. A deleted or missing record completes with found = false.`,tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`read`,`fetch`,`get`,`record`,`custom object`],docPath:G(wI),guide:"The record-ID input consumes `salesforce_record_id`, which every Salesforce surface emits โ chain from a match pipe or search (alias it to point at a differently named column). Returns ALL fields the connected user can see, nested under `record` in the output JSON โ fields hidden by field-level security are silently absent. found = false (deleted/missing id) is a successful result.",billableOperations:DI,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:EI(null),defaultPayload:{pipe_id:wI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Contact`,input_fields:{salesforce_record_id:{alias:``}},output_fields:{salesforce_record_found:{alias:``,enabled:!0},salesforce_record_match:{alias:``,enabled:!0}}}}},jI=_(`attio_record_found`),MI=_(`attio_record_id`),NI=_(`attio_record_match`),PI=`record:match:attio@1`,FI=r.object({pipe_id:r.literal(PI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),matching_attribute:bd({sectionKey:`general`,required:!0,label:`Matching attribute`,groupPath:`config.general`,path:`config.matching_attribute`,info:`The object's UNIQUE attributes โ one value maps to at most one record. Deals have none by default (find them via deal:match instead); custom objects list their own unique attributes.`,guide:`Only the object's UNIQUE attributes qualify โ one value maps to at most one record. Deals have none by default; find deals via deal:match:attio@1 instead.`,enabledIf:v(`attio`),optionsDef:Vp(`object`)}),value:x({sectionKey:`general`,label:`Value`,inputType:`text`,expectedTagType:`string`,expectedTagFormat:`text`,groupPath:`config.general`,path:`config.value`,placeholder:`{{ serial_number }}`,info:"The value to match โ a literal or a `{{ column }}` reference. Matched exactly against the unique attribute.",guide:"The value to match โ a literal or a `{{ field }}` tag. Matched exactly against the unique attribute."}),output_fields:I(r.object({[jI.name]:D({fieldName:jI.name}),[MI.name]:D({fieldName:MI.name}),[NI.name]:D({fieldName:NI.name})}))})}),II=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},LI={"record-match-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},RI=class extends V{pipeId=PI;payload;payloadSchema=FI;billableOperations=LI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-match-attio-v1-attio`)}getTemplates(){return[this.payload.config.value].filter(e=>!!e)}getInputRequirement(){return Of(...II(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[jI.name]:this.catalogOutput(jI),[MI.name]:this.catalogOutput(MI),[NI.name]:this.catalogOutput(NI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_query`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`})}},zI=FI,BI={pipeId:PI,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(PI),label:`Attio match record`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Find one record of ANY Attio object (custom objects included) by a unique attribute โ the generic find-by-key. A clean miss completes with found = false.`,tags:[H.NEW],keywords:[`crm`,`find`,`exists`,`unique`,`key`,`custom object`,`dedupe`],docPath:G(PI),guide:`Call get_provider_context first โ it lists each object's unique attributes (the legal match targets). For people/companies prefer the typed person:match/company:match pipes (identity defaults + richer envelopes); use this for custom objects, users/workspaces, or custom unique attributes. Matching is exact; found = false is a successful result. Chain attio_record_id into record:update:attio@1.`,billableOperations:LI,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Of(),defaultPayload:{pipe_id:PI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,matching_attribute:`email_addresses`,value:`{{ email }}`,output_fields:{attio_record_found:{alias:``,enabled:!0},attio_record_id:{alias:``,enabled:!0},attio_record_match:{alias:``,enabled:!0}}}}},VI=_(`attio_record_id`),HI=_(`attio_update_result`),UI=`record:update:attio@1`,WI=r.object({pipe_id:r.literal(UI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,guide:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),input_fields:L(r.object({[VI.name]:T({fieldName:VI.name})})),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Attribute values`,info:"Attribute = the Attio api_slug (e.g. `job_title`, custom attributes too). In the Value column, type `/` to insert a field reference. Select/status values are matched by TITLE (workspace-defined, never auto-created). Leave a value empty to skip that attribute for the row โ blank values are skipped, never cleared.",guide:"Keys are attribute api_slugs (e.g. `job_title`), custom attributes included.",keyLabel:`Attribute slug`,valueLabel:`Value`,keyPlaceholder:`job_title`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),multiselect_mode:md({sectionKey:`general`,required:!1,label:`Multiselect values`,groupPath:`config.general`,path:`config.multiselect_mode`,description:`Only affects multiselect attributes (e.g. domains, email_addresses, multi-selects): append adds the written value to the existing ones; overwrite replaces the full list.`,options:[{label:`Append`,value:`append`},{label:`Overwrite`,value:`overwrite`}]}).default(`append`),output_fields:I(r.object({[HI.name]:D({fieldName:HI.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.values??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`values`,n]});if(t.includes(`{{`)){r("Attribute slug must be a literal api_slug (no `{{ }}` templating).");continue}/^[a-z][a-z0-9_]*$/.test(t)||r(`Invalid Attio attribute slug "${t}" โ api_slugs are lowercase letters, digits, and underscores.`)}})}),GI=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},KI=e=>B(K(VI,e)),qI={"record-update-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},JI=class extends V{pipeId=UI;payload;payloadSchema=WI;billableOperations=qI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-update-attio-v1-attio`)}getTemplates(){return Object.values(this.payload.config.values??{}).filter(e=>!!e)}getInputRequirement(){return Of(KI(this.payload.config),...GI(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[HI.name]:this.catalogOutput(HI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_write`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`,writableOnly:!0})}},YI=WI,XI={pipeId:UI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(UI),label:`Attio update record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update an Attio record (standard or custom object) by its record ID, mapping columns to attributes. Blank values are skipped so un-enriched cells never erase CRM data.`,tags:[H.FIELDS],keywords:[`crm`,`write`,`sync`,`record`,`attribute`,`custom object`],docPath:G(UI),guide:"Resolve the record ID first (person:match/company:match/record:match โ Update by ID is the canonical recipe) and map it into the `attio_record_id` input. Call get_provider_context for the selected object to see WRITABLE attributes and select/status titles โ Attio rejects read-only (enriched) attributes and unknown option titles (workspace-defined, never auto-created). Value coercion is permissive: select/status by title, domains/emails as plain strings, workspace-member emails for actor references, record IDs for record references. 'Append vs overwrite' only affects multiselect attributes. Blank values are skipped, not cleared.",billableOperations:qI,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:KI(null),defaultPayload:{pipe_id:UI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,input_fields:{attio_record_id:{alias:``}},values:{},multiselect_mode:`append`,output_fields:{attio_update_result:{alias:``,enabled:!0}}}}},ZI=_(`salesforce_record_id`),QI=_(`salesforce_update_result`),$I=`record:update:salesforce@1`,eL=(e,t)=>{let n=e.value;for(let r of Object.keys(n[t]??{})){let n=r.trim();if(!n)continue;let i=n=>e.issues.push({code:`custom`,input:r,message:n,path:[t,r]});if(n.includes(`{{`)){i("Field name must be a literal API name (no `{{ }}` templating).");continue}if(n.includes(`.`)){i(`Invalid field name "${n}" โ dotted paths cannot be written; set the lookup ID field (e.g. AccountId) instead.`);continue}/^[a-zA-Z][a-zA-Z0-9_]*$/.test(n)||i(`Invalid Salesforce field name "${n}" โ API names are letters, digits, and underscores (custom fields end in __c).`)}},tL=r.object({pipe_id:r.literal($I),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can update.`,guide:`Standard and custom objects the connected user can update.`,enabledIf:v(`salesforce`),optionsDef:rp({updateableOnly:!0})}),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Field values`,info:"Field = the Salesforce API name (`Title`, custom fields like `Lead_Score__c`). In the Value column, type `/` to insert a field reference. Blank values are skipped, never cleared. Restricted-picklist values must match existing entries exactly (case-sensitive); multi-select picklist writes REPLACE the whole set (semicolon-joined).",guide:"Keys are Salesforce field API names (`Title`, custom fields like `Lead_Score__c`). Blank values are skipped, never cleared. Multi-select picklist writes REPLACE the whole set (semicolon-joined).",keyLabel:`Field API name`,valueLabel:`Value`,keyPlaceholder:`Title`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),bypass_duplicate_alerts:ud({sectionKey:`general`,defaultValue:!1,label:`Bypass duplicate alerts`,groupPath:`config.general`,path:`config.bypass_duplicate_alerts`,info:`Acknowledge ALERT-mode duplicate rules and save anyway. BLOCK-mode rules can never be bypassed โ those errors list the matching records.`}),input_fields:L(r.object({[ZI.name]:T({fieldName:ZI.name})})),output_fields:I(r.object({[QI.name]:D({fieldName:QI.name})}))}).check(e=>eL(e,`values`))}),nL=e=>B(K(ZI,e)),rL={"record-update-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},iL=class extends V{pipeId=$I;payload;payloadSchema=tL;billableOperations=rL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-update-salesforce-v1-salesforce`)}getTemplates(){return Object.values(this.payload.config.values??{}).filter(e=>!!e)}getInputRequirement(){return Of(nL(this.payload.config),...pp(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[QI.name]:this.catalogOutput(QI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Contact`],writableOnly:!0})}},aL=tL,oL={pipeId:$I,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W($I),label:`Salesforce update record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update a Salesforce record (standard or custom object) by its record ID, mapping columns to fields. Blank values are skipped so un-enriched cells never erase CRM data; the output carries the fresh post-save record.`,tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`write`,`sync`,`field`,`custom object`],docPath:G($I),guide:"The record-ID input consumes `salesforce_record_id`, which every Salesforce surface emits โ chain from a match pipe (alias it to point at a differently named column). Call get_provider_context for the object's WRITABLE fields and picklist values โ formula fields are read-only, restricted-picklist values are validated before the write (case-sensitive), and converted leads are read-only entirely (update the contact via ConvertedContactId instead). Duplicate rules may block the save; the error includes the admin's message and the matching record IDs, and `bypass_duplicate_alerts` acknowledges ALERT-mode rules only. Rows where every value renders blank skip the API call. Consume post-write values from the result JSON's `record` โ formulas and triggers may rewrite fields after save.",billableOperations:rL,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:nL(null),defaultPayload:{pipe_id:$I,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Contact`,values:{},bypass_duplicate_alerts:!1,input_fields:{salesforce_record_id:{alias:``}},output_fields:{salesforce_update_result:{alias:``,enabled:!0}}}}},sL=`role:waterfall@1`,cL=_(`company_domain`),lL=_(`role_finder_person_match`),uL=[`amplemarket`,`leadmagic`,`surfe`],dL=[{provider:`amplemarket`},{provider:`surfe`},{provider:`leadmagic`}],fL=r.object({pipe_id:r.literal(sL),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:dL,availableProviders:uL}),titles:id({sectionKey:`general`,groupPath:`config.general`,label:`Titles`,path:`config.titles`,info:`Job titles to look for at the company.`,maxItems:3,minItems:1,suggestionsDef:g(`person.job_titles`),expectedTagType:`string`}),input_fields:L(r.object({[cL.name]:T({fieldName:cL.name})})),output_fields:I(r.object({[lL.name]:D({fieldName:lL.name})}))})}),pL=e=>kf(K(cL,e)),mL={"role-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"role-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"role-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`}},hL=class extends V{pipeId=sL;payload;payloadSchema=fL;billableOperations=mL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return pL(this.payload.config)}getSecretRequirements(){return J(this.payload.config?.titles??[])}getConstantRequirements(){return mm(this.payload.config?.titles??[])}getRawOutputFields(){return{[lL.name]:this.catalogOutput(lL,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_role_finder`,amplemarket:`amplemarket_people_search`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},gL=fL,_L={pipeId:sL,basePipe:W(sL),managedProviders:uL,deprecatedProviders:[],allowedUserConnectionProviders:uL,label:`Role finder`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find one person at a company holding a given job title like "CEO" or "CFO".`,tags:[H.PEOPLE_PROFILES],keywords:[`job title`,`title`,`ceo`,`executive`,`decision maker`,`employee`],docPath:G(sL),billableOperations:mL,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:pL(null),defaultPayload:{pipe_id:sL,run_if:null,connector:null,config:{titles:[],providers:dL,input_fields:{company_domain:{alias:``}},output_fields:{role_finder_person_match:{alias:``,enabled:!0}}}}},vL=`roles:waterfall@1`,yL=_(`company_domain`),bL=_(`role_finder_matches`),xL=_(`role_finder_match_count`),SL=[`amplemarket`,`surfe`],CL=[{provider:`amplemarket`},{provider:`surfe`}],wL=r.object({pipe_id:r.literal(vL),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:CL,availableProviders:SL}),titles:id({sectionKey:`general`,groupPath:`config.general`,label:`Titles`,path:`config.titles`,info:`Job titles to look for at the company. All of them are searched at once, so a broad list can come back weighted towards a single title.`,guide:`All titles are searched at once, so a broad list can come back weighted towards a single title.`,maxItems:5,minItems:1,suggestionsDef:g(`person.job_titles`),expectedTagType:`string`}),limit:_d({sectionKey:`general`,groupPath:`config.general`,label:`Limit`,path:`config.limit`,info:`Maximum people returned per company. Billing is per company, not per person.`,guide:`Maximum people returned per company. Billing is per company, not per person.`,min:1,max:15}).default(15),input_fields:L(r.object({[yL.name]:T({fieldName:yL.name})})),output_fields:I(r.object({[bL.name]:D({fieldName:bL.name}),[xL.name]:D({fieldName:xL.name})}))})}),TL=e=>kf(K(yL,e)),EL={"roles-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`},"roles-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`}},DL=class extends V{pipeId=vL;payload;payloadSchema=wL;billableOperations=EL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return TL(this.payload.config)}getSecretRequirements(){return J(this.payload.config?.titles??[])}getConstantRequirements(){return mm(this.payload.config?.titles??[])}getRawOutputFields(){return{[bL.name]:this.catalogOutput(bL,{isPrimaryOutput:!0}),[xL.name]:this.catalogOutput(xL)}}getConnectionsRequirements(){let e={amplemarket:`amplemarket_people_search`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},OL=wL,kL={pipeId:vL,basePipe:W(vL),managedProviders:SL,deprecatedProviders:[],allowedUserConnectionProviders:SL,label:`Role finder (multiple)`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find every person at a company holding one of the given job titles, as a list. Expand it into rows to enrich each person.`,tags:[H.PEOPLE_PROFILES],keywords:[`employees`,`team`,`decision makers`,`colleagues`,`several`,`fan out`],docPath:G(vL),billableOperations:EL,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:TL(null),defaultPayload:{pipe_id:vL,run_if:null,connector:null,config:{titles:[],limit:15,providers:CL,input_fields:{company_domain:{alias:``}},output_fields:{role_finder_matches:{alias:``,enabled:!0},role_finder_match_count:{alias:``,enabled:!0}}}}},AL=[{label:`demo-leads`,value:`demo-leads`},{label:`demo-companies`,value:`demo-companies`},{label:`demo-contacts`,value:`demo-contacts`}],jL=[{label:`Demo project`,value:`demo-project`},{label:`Sales pipeline`,value:`sales-pipeline`}];function ML(e){let t=e?.config?.project;return typeof t==`string`&&t.length>0?t:void 0}function NL(e){if(!e||e.conditions.length===0)return null;let t=JSON.stringify({logic:e.logic,conditions:e.conditions.map(e=>[e.field_name,e.operator,e.value])}),n=2166136261;for(let e=0;e<t.length;e++)n^=t.charCodeAt(e),n=Math.imul(n,16777619)>>>0;return n.toString(16).padStart(8,`0`)}function PL(e,t,n){let r=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40),i=`rr--${r(e)}--${r(t)}`;return n?`${i}--f-${r(n)}`:i}function FL(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}const IL={requires:{connection:`pipe0`},enabledIf:v(`pipe0`,`Select a pipe0 connection to see sheet suggestions`),options:async({query:e,client:t,environment:n})=>n===`sandbox`?AL:t?(await t.sheets.list({query:e})).map(e=>({label:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},LL={requires:{connection:`pipe0`,fields:[`config.project`]},enabledIf:v(`pipe0`,`Select a pipe0 connection to see sheet suggestions`),options:async({query:e,client:t,environment:n,payload:r})=>n===`sandbox`?AL:t?(await t.sheets.list({query:e,projectSlug:ML(r)})).map(e=>({label:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},RL={requires:{connection:`pipe0`},enabledIf:v(`pipe0`,`Select a pipe0 connection to see project suggestions`),options:async({query:e,client:t,environment:n})=>n===`sandbox`?jL:t?(await t.projects.list({query:e})).map(e=>({label:e.name&&e.name!==e.slug?`${e.name} (${e.slug})`:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},zL=[{value:`email`,label:`email`,data:{type:`string`,format:`email`}},{value:`name`,label:`name`,data:{type:`string`}},{value:`company`,label:`company`,data:{type:`string`}}],BL={"demo-leads":zL,"demo-companies":[{value:`domain`,label:`domain`,data:{type:`string`,format:`website_url`}},{value:`company_name`,label:`company_name`,data:{type:`string`}}],"demo-contacts":zL},VL=e=>({requires:{connection:`pipe0`,fields:[e.sheetPath]},enabledIf:v(`pipe0`,`Select a pipe0 connection to see column suggestions`),options:async({payload:t,client:n,environment:r})=>{let i=FL(t,e.sheetPath);return typeof i!=`string`||!i.trim()||i.includes(`{{`)?[]:r===`sandbox`?BL[i.trim()]??zL:n?(await n.sheets.fields({slug:i.trim()})).filter(t=>(e.includeJson||t.type!==`json`)&&t.name.toLowerCase()!==`id`).map(e=>({value:e.name,label:e.name,data:{type:String(e.type),...e.format?{format:String(e.format)}:{}}})):[]},widgets:{provider_logo:{provider:`pipe0`}}}),HL=`row:append:sheet@1`,UL=_(`sheet_record_id`),WL=_(`created_sheet`),GL=r.object({pipe_id:r.literal(HL),connector:S(),run_if:b(),config:r.object({project:x({label:`Project`,info:"Project the destination sheet lives in (its org-unique slug). Pick an existing project or type a new slug โ a new project is created when `allow_entity_creation` is on.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.project`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:RL}),sheet:x({label:`Sheet ID`,info:'The destination sheet\'s identifier (its slug โ NOT the display name). Slugs are org-unique: pick an existing sheet to append into it, or type a NEW slug to create one โ a generic slug (e.g. "results", "companies") is likely to match an unrelated existing sheet, so for a new sheet use a short descriptive slug plus a few random chars (e.g. "ceos-x7k2") that can\'t collide. Type `@` to insert a field reference / `$` for a secret.',groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:LL,enabledIf:e=>e.config?.project?{disabled:!1}:{disabled:!0,message:`Select a project first`}}),run_added_rows:ud({defaultValue:!0,groupPath:`config.advanced`,path:`config.run_added_rows`,sectionKey:`general`,description:`Auto-run the destination sheet's pipes over the row this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,label:`Run added rows`}),allow_entity_creation:ud({label:`Allow creating missing entities`,description:`Leave this on (the default): missing fields, sheets, and projects are created as needed (unknown fields become columns). Set false ONLY when the user explicitly forbids creating anything โ never as a precaution; when in doubt, leave it on. A destination sheet existing (even one you just created) does not make false safe: its columns are entities too. With it off a missing sheet/project fails the run, and with write_fields set the destination must already have every written column (the pipe fails fast with the missing names).`,defaultValue:!0,groupPath:`config.advanced`,path:`config.allow_entity_creation`,sectionKey:`general`}),write_fields:Ju({label:`Fields`,info:`All fields are written if empty. An entry's optional alias renames the destination column.`,groupPath:`config.general`,path:`config.write_fields`,sectionKey:`general`,disableSearch:!0}),output_fields:I(r.object({[UL.name]:D({fieldName:UL.name}),[WL.name]:D({fieldName:WL.name})}))})}).check(e=>{let t=e.value.config?.write_fields??[],n=t.map(e=>(e.alias?.trim()||e.field_name).toLowerCase());t.forEach((t,r)=>{let i=t.alias?.trim();i&&(Cf(i)&&e.issues.push({code:`custom`,input:i,path:[`config`,`write_fields`,r,`alias`],message:`'${i}' is reserved and cannot be written to the destination sheet.`}),n.filter(e=>e===i.toLowerCase()).length>1&&e.issues.push({code:`custom`,input:i,path:[`config`,`write_fields`,r,`alias`],message:`'${i}' collides with another write_fields destination name.`}))})}),KL={"row-append-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},qL=class extends V{pipeId=HL;payload;payloadSchema=GL;billableOperations=KL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-append-sheet-v1-pipe0`)}getInputRequirement(){let e=[pm([this.payload.config.project,this.payload.config.sheet],{expectedType:`string`})];if(this.payload.config.write_fields?.length)for(let t of this.payload.config.write_fields)e.push(B({name:t.field_name,resolvedName:t.field_name,label:``,description:``,type:e=>{let n=Xf(e,t.field_name);if(!n)throw Error(`Unable to find field with name ${t.field_name}. But needed by prompt parser.`);return n.type||`unknown`},format:null}));return Of(...e)}getSecretRequirements(){return J([this.payload.config.project,this.payload.config.sheet])}getConstantRequirements(){return mm([this.payload.config.project,this.payload.config.sheet])}getRawOutputFields(){return{[UL.name]:this.catalogOutput(UL),[WL.name]:this.catalogOutput(WL)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},JL=GL,YL={pipeId:HL,basePipe:W(HL),label:`Append row to sheet`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:"Add rows to a pipe0 sheet in a given project. config.project and config.sheet may each be a literal slug or a `{{ field_name }}` tag.",guide:`Append records to another pipe0 sheet. config.project (required) is the destination project's org-unique slug. When working inside a project, pass that project's slug (see CURRENT CONTEXT). config.sheet is the destination sheet's slug; both may be a \`{{ field }}\` tag for a per-row destination. config.write_fields is the destination's CONTRACT: list exactly the columns it consumes. An entry's optional alias renames its destination column: { field_name: "email", alias: "signup_email" } reads \`email\` from the source row and writes it as \`signup_email\`. EMPTY write_fields mirrors EVERY source column into the destination โ almost never what a routing/handoff sheet wants. Leave allow_entity_creation at its default (on) unless the user explicitly forbids creating anything. With allow_entity_creation on a missing project/sheet is created and unknown fields become columns. A just-created destination sheet still needs allow_entity_creation โ its columns count as entities. With allow_entity_creation off nothing is created; with write_fields set, the pipe fails fast if the destination lacks any written column. A sheet slug already in a DIFFERENT project fails the rows either way. run_added_rows is BEST-EFFORT. When the destination is too busy to accept the auto-run, the row still lands and the cell completes labeled "Added โ auto-run skipped". The destination's next run picks it up. Destination slugs are ORG-UNIQUE, so config.sheet addresses a sheet across your whole org. An existing slug REUSES that sheet (appending into it) when it's in config.project, and FAILS when it lives elsewhere. For a genuinely new sheet use a short descriptive slug plus 3-4 random alphanumeric chars (e.g. "ceos-x7k2"). You cannot see other projects' slugs, so only the random suffix makes a new slug collision-proof. Set the display name afterwards: in-app via the name_workspace tool, via API with PATCH /v1/sheets/{sheet_id}. To expand a list field into MANY rows (a 1:N relationship), use row:expandappend:sheet@1 instead. To bulk-copy existing rows across sheets, prefer the rows:copy_to_sheet@1 effect. NON-IDEMPOTENT: each run appends again, so re-running duplicates rows. Rows written to another sheet cannot be undone. Rehearse an UNTESTED flow in sandbox first (env:change@1). An append whose payload validated against a known shape runs in production directly. To retry after a partial failure, adopt the succeeded cells (rows:adopt@1 with adopt_statuses:["completed"]) then rows:enrich@1. Requires a pipe0 connection (list_connections).`,docPath:G(HL),tags:[H.FIELDS],keywords:[`add`,`insert`,`write`,`push`,`export`],hasSideEffects:!0,billableOperations:KL,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:HL,connector:{strategy:`first`,connections:[]},run_if:null,config:{project:``,sheet:``,run_added_rows:!0,allow_entity_creation:!0,write_fields:[],output_fields:{sheet_record_id:{alias:``,enabled:!0},created_sheet:{alias:``,enabled:!0}}}}},XL=`row:expandappend:sheet@1`,ZL=_(`sheet_record_ids`),QL=_(`input_objects`),$L=`expanded_value`,eR=r.object({pipe_id:r.literal(XL),connector:S(),run_if:b(),config:r.object({project:x({label:`Project`,info:"Project the destination sheet lives in (its org-unique slug). Pick an existing project or type a new slug โ a new project is created when `allow_entity_creation` is on.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.project`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:RL}),sheet:x({label:`Sheet ID`,info:`The destination sheet's identifier (its slug โ NOT the display name). Slugs are org-unique: pick an existing sheet to write into it, or type a NEW slug to create one. A generic slug (e.g. "results", "companies") is likely to match an unrelated existing sheet, so for a new sheet use a short descriptive slug plus a few random chars (e.g. "ceos-x7k2") that can't collide.`,groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:LL,enabledIf:e=>e.config?.project?{disabled:!1}:{disabled:!0,message:`Select a project first`}}),run_added_rows:ud({defaultValue:!0,groupPath:`config.general`,path:`config.run_added_rows`,sectionKey:`general`,info:`Auto-run the destination sheet's pipes over the rows this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,guide:`Auto-run the destination sheet's pipes over the rows this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,label:`Run added rows`}),write_fields:Ju({label:`Fields`,info:`Source-row fields written onto every expanded row alongside the item (e.g. a join key like user_id). An entry's optional alias renames the destination column. Unlike row:append:sheet@1, empty writes NO source columns.`,groupPath:`config.general`,path:`config.write_fields`,sectionKey:`general`,disableSearch:!0}),allow_entity_creation:ud({label:`Allow creating missing entities`,description:`Leave this on (the default): a missing sheet or project is created as needed, along with the destination column and any write_fields columns. Set false ONLY when the user explicitly forbids creating anything โ never as a precaution; when in doubt, leave it on. A destination sheet existing (even one you just created) does not make false safe: the destination column is an entity too. With it off the pipe fails fast when the destination lacks any column it writes.`,defaultValue:!0,groupPath:`config.advanced`,path:`config.allow_entity_creation`,sectionKey:`general`}),...dd({groupPath:`config.destination`,sectionKey:`general`,defaultName:$L,nameInfo:`Name of the field each list item is written to on the destination sheet. Each item is stored as-is (objects/arrays as one json cell); extract flat columns afterwards with json:extract:multi@1.`}),input_fields:L(r.object({[QL.name]:T({fieldName:QL.name})})),output_fields:I(r.object({[ZL.name]:D({fieldName:ZL.name})}))})}).check(e=>{let t=e.value.config?.destination_field_name;t&&Cf(t)&&e.issues.push({code:`custom`,input:t,path:[`config`,`destination_field_name`],message:`'${t}' is reserved and cannot be used as a destination field name.`});let n=(t?.trim()||`expanded_value`).toLowerCase(),r=new Set;(e.value.config?.write_fields??[]).forEach((t,i)=>{let a=t.alias?.trim(),o=a||t.field_name,s=a?`alias`:`field_name`,c=o.toLowerCase();Cf(o)&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' is reserved and cannot be written to the destination sheet.`}),c===n&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' collides with the destination field each item is written to.`}),r.has(c)&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' is listed more than once.`}),r.add(c)})}),tR={"row-expandappend-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},nR=e=>B(K(QL,e)),rR=class extends V{pipeId=XL;payload;payloadSchema=eR;billableOperations=tR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-expandappend-sheet-v1-pipe0`)}getInputRequirement(){return nR(this.payload.config)}getRawOutputFields(){return{[ZL.name]:this.catalogOutput(ZL)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},iR=eR,aR={pipeId:XL,basePipe:W(XL),label:`Expand list to sheet`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:"Expand a list into sheet rows โ each item is written as-is to an `expanded_value` column (objects/arrays as json).",guide:`Expand a 1:N list into rows on ANOTHER sheet: each item in the input_objects array becomes its own row on config.sheet. config.project (required) is the destination project's org-unique slug. When working inside a project, pass that project's slug (see CURRENT CONTEXT). Every item is written AS-IS to a single column on the destination. An object/array lands as one json cell โ its fields are not spread into separate columns. A primitive lands as a scalar. That column is \`expanded_value\` by default. Rename/retype it via config.destination_field_name / destination_field_type / destination_field_format / destination_field_label. Type/format are inferred from the data when left unset. For flat columns, run json:extract:multi@1 on the DESTINATION sheet afterwards to pull exactly the values you need. config.write_fields copies chosen SOURCE-row fields onto every expanded row alongside the item. Use it for what the item does not already carry. Examples: a stable join key like user_id; the parent's identity when the items are primitives (bare emails, urls). A standardized object item embeds its own context โ e.g. a role match carries company_name/company_domain. Extract that context from the item on the destination instead of duplicating it here. An entry's optional alias renames its destination column: { field_name: "email", alias: "signup_email" } reads \`email\` from the source row and writes it as \`signup_email\`. Unlike row:append:sheet@1, EMPTY write_fields writes no source columns โ the expanded item is the row. write_fields values are read from the row at run time, deliberately not typed inputs. Editing the list never force-requeues this pipe. Leave allow_entity_creation at its default (on) unless the user explicitly forbids creating anything. The destination/write_fields columns are created by THIS pipe, so a just-created destination sheet still needs allow_entity_creation. With allow_entity_creation off nothing is created; the pipe fails fast when the destination lacks those columns. A sheet slug that exists in a DIFFERENT project fails the rows either way. run_added_rows is BEST-EFFORT. When the destination is too busy to accept the auto-run, the rows still land and the cell completes labeled "Added โ auto-run skipped". The destination's next run picks those rows up. Destination slugs are ORG-UNIQUE, so config.sheet addresses a sheet across your whole org. An existing slug REUSES that sheet (appending into it) when it's in config.project, and FAILS when it lives elsewhere. A generic slug like "results"/"companies"/"current-employers" likely hits an unrelated sheet. For a genuinely new sheet use a short descriptive slug plus 3-4 random alphanumeric chars (e.g. "ceos-x7k2", "prospects-employers-9fq"). You cannot see other projects' slugs, so only the random suffix makes a new slug collision-proof. Set the display name afterwards: in-app via the name_workspace tool, via API with PATCH /v1/sheets/{sheet_id}. Use this pipe when a column holds a list you need per-element (e.g. a profile's current employers) BEFORE enriching each element. Never collapse the list with an LLM. Requires a pipe0 connection (resolve via list_connections). Typical chain: json:extract:multi@1 to build the array column โ this pipe to expand it into an intermediary sheet โ json:extract:multi@1 THERE to flatten the fields you need out of expanded_value โ enrich each row (e.g. role:waterfall@1) โ rows:copy_to_sheet@1 to the final sheet. NON-IDEMPOTENT: each run appends again, so re-running duplicates rows. Rows written to another sheet cannot be undone. Rehearse an UNTESTED flow in sandbox first (env:change@1). An append whose payload validated against a known shape runs in production directly. To retry after a partial failure, adopt the succeeded cells (rows:adopt@1 with adopt_statuses:["completed"]) then rows:enrich@1. In the replace-on-refresh pattern (paired rows:delete:sheet@1 instances), position in the pipes array is NOT execution order. Gate THIS pipe with a run_if on each delete's aliased count output (status eq completed). Those run_if references are the dependency edges: they guarantee delete-before-append and skip the append whenever the deletes were skipped.`,docPath:G(XL),tags:[H.FIELDS],keywords:[`explode`,`denormalize`,`array`,`split`,`one to many`,`fan out`,`expansion`,`expand list`,`list to rows`,`rows`,`unnest`,`materialize`],hasSideEffects:!0,billableOperations:tR,defaultInputRequirement:nR(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:XL,connector:{strategy:`first`,connections:[]},run_if:null,config:{project:``,sheet:``,run_added_rows:!0,allow_entity_creation:!0,write_fields:[],destination_field_name:$L,destination_field_type:``,destination_field_format:``,destination_field_label:``,input_fields:{input_objects:{alias:``}},output_fields:{sheet_record_ids:{alias:``,enabled:!0}}}}},oR=`row:roundrobin:sheet@1`,sR=fl(v(`pipe0`,`Add a pipe0 connection first`),dl(e=>e.config?.sheet,`Select a sheet first`)),cR=r.object({pipe_id:r.literal(oR),connector:S(),run_if:b(),config:r.object({sheet:bd({label:`Sheet`,info:`The sheet to rotate through โ e.g. a roster of sellers. Always another sheet.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet`,required:!0,optionsDef:IL}),sheet_where:Du({label:`Rotation pool`,info:`Only target-sheet rows matching these conditions rotate. Leave empty to rotate over the whole sheet.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_where`,required:!1,enabledIf:sR,fieldNamePlaceholder:`segment`,optionsDef:VL({sheetPath:`config.sheet`})}),sheet_unique_field:Zu({label:`Unique column`,info:`Column of the target sheet that must be filled and unique in every row โ checked at run time.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_unique_field`,required:!0,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`})}),sheet_copy_fields:Xu({label:`Fields to bring over`,info:`Target-sheet columns copied from the picked row; each becomes an output column.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_copy_fields`,minItems:1,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`,includeJson:!0})}),sheet_weight_field:Zu({label:`Weight column`,info:`Numeric target-sheet column scaling each row's share. 0 pauses a row; empty counts as 1. Leave unset for equal shares.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_weight_field`,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`})}),counter_field:Zu({label:`Counter field`,info:`Column of this sheet whose unique values advance the rotation.`,groupPath:`config.general`,sectionKey:`general`,path:`config.counter_field`,required:!0})})}),lR={"row-roundrobin-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},uR=class extends V{pipeId=oR;payload;payloadSchema=cR;billableOperations=lR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-roundrobin-sheet-v1-pipe0`)}getTemplatedFields(){return(this.payload.config.sheet_where?.conditions??[]).map(e=>typeof e.value==`string`?e.value:null)}getInputRequirement(){let e=this.payload.config.counter_field.field_name,t=B({name:e,resolvedName:e,label:``,description:``,source:`config.counter_field โ a column of THIS sheet`,type:t=>Xf(t,e)?.type||`unknown`,format:null}),n=pm(this.getTemplatedFields(),{expectedType:`string`});return n.kind===`all`&&n.of.length===0?t:Of(t,n)}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getBucketRequirements(){let e=dt(this.payload.config.sheet),t=this.payload.config.counter_field.field_name;if(!e||!t)return[];let n=this.payload.config.sheet_where??null;return(n?.conditions??[]).some(e=>typeof e.value==`string`&&e.value.includes(`{{`))?[]:[{slug:PL(e,t,NL(n)),type:`counter`,schema:null,allowCreation:!0}]}getRawOutputFields(){let e={};for(let t of this.payload.config.sheet_copy_fields){if(!t.field_name)continue;let n=t.alias||t.field_name;e[t.field_name]={description:`Value of the target sheet's "${t.field_name}" column on the round-robin-picked row.`,enabled:!0,format:t.format??null,label:n,name:t.field_name,resolvedName:n,jsonMeta:null,type:t.type??`unknown`,isCatalogFIeld:!1,isPrimaryOutput:!1}}return e}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},dR=cR,fR={pipeId:oR,basePipe:W(oR),label:`Round-robin from sheet`,executionMode:`single`,categories:[`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Rotate through the rows of another sheet (e.g. a sellers roster). Each unique counter value picks the next row round-robin; the selected columns of the picked row become outputs. Re-run safe โ the same counter value always picks the same row.`,guide:"Round-robin assignment from another pipe0 sheet (the roster โ e.g. sellers). config.sheet is the target sheet's org-unique slug โ one FIXED sheet for the whole pipe, never a per-row reference. config.sheet_where (optional) restricts the rotation pool to target-sheet rows matching the conditions; null = whole sheet. Condition field_names are LITERAL target-sheet columns; string values may hold `{{ field }}` refs resolved per lead. Example: segment eq {{ segment }} routes each lead over its own segment's rows. Each distinct RESOLVED filter cycles on its own counter โ strict round robin within each pool. Avoid high-cardinality templated filters ({{ email }}-like): every distinct value creates a counter bucket and exhausts the org bucket quota. config.sheet_unique_field names a target-sheet column that must be filled in EVERY row and unique across rows. The run fails with a clear message when that column has gaps or duplicates; this guarantees every roster row is a distinct assignee. config.sheet_copy_fields are the target-sheet columns copied from the picked row. Each becomes an output column named like the column, or like the entry's `alias` when set. Use an alias whenever THIS sheet already has a column of that name (e.g. roster `email` โ alias `seller_email`). Otherwise the copy silently writes into the existing column. Entries are typed by `type`/`format`, copied from the target sheet's schema when picked. A target column whose type later changes fails the run with an output-type mismatch; re-pick the column to refresh the copy. config.counter_field names a column of the CURRENT sheet. Every unique value of that column takes the next number from an internal counter bucket (first-seen โ 1, next new value โ 2, โฆ). The SAME value always keeps the SAME number, so re-runs are stable. For lead/signup routing the counter defaults to the ACCOUNT key โ a company domain column. Every lead from the same company then keeps the same assignee. Build the domain column: work email โ field:domainify@1; personal email โ reverse lookup; coalesce with fields:merge@1. Put the counter on the person's email ONLY when account grouping is explicitly unwanted (consumer flows). See the routing:leads:roundrobin@1 playbook. The pick is slot (n โ 1) mod W over the pool's rows in creation order. W is the pool's total weight (= row count when unweighted). Adding pool rows only changes the wrap; deleting or reordering reshuffles subsequent picks. config.sheet_weight_field (optional) names a NUMERIC target-sheet column. A row with weight w takes w of every W slots, spread evenly across the cycle (weight 2 โ two consecutive picks). Weight 0 pauses the row; an empty cell counts as 1. A negative or non-integer weight fails the run loudly. Editing weights re-shapes FUTURE picks only โ the counter and its bucket are untouched, so rotation never restarts. The internal counter is a real org-scoped counter bucket, visible in the buckets UI (slug `rr--<sheet>--<counter field>`). Changing the sheet or the counter field starts a fresh rotation. A row with a missing/empty counter value is gated to skipped before the runner. Empty roster โ all outputs no_result. A copied column that is empty on the picked row resolves to no_result. Missing sheet (bad slug) fails the record naming the slug. The target sheet is NEVER modified. FREE pipe0 operation; requires a pipe0 connection (list_connections).",docPath:G(oR),tags:[H.FIELDS],keywords:[`rotate`,`rotation`,`distribute`,`routing`,`assignment`,`owner`,`alternate`],billableOperations:lR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`config`,defaultPayload:{pipe_id:oR,connector:{strategy:`first`,connections:[]},run_if:null,config:{sheet:``,sheet_where:null,sheet_unique_field:{field_name:``},sheet_copy_fields:[],sheet_weight_field:{field_name:``},counter_field:{field_name:``}}}},pR=`rows:delete:sheet@1`,mR=_(`sheet_deleted_count`),hR=r.object({pipe_id:r.literal(pR),connector:S(),run_if:b(),config:r.object({sheet:x({label:`Sheet ID`,info:"The sheet to delete from (its org-unique slug โ NOT the display name). Type `@` to insert a field reference for a per-row sheet. A sheet that does not exist yet completes with 0 deleted.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:IL}),where:Du({label:`Delete conditions`,info:"Conditions on the target sheet's columns. Column names are literal; in the value, type `/` to insert a field reference (e.g. `{{ user_id }}`). Rows matching the condition are DELETED.",groupPath:`config.general`,sectionKey:`general`,path:`config.where`,fieldNamePlaceholder:`user_id`,optionsDef:VL({sheetPath:`config.sheet`})}),output_fields:I(r.object({[mR.name]:D({fieldName:mR.name})}))})}),gR={"rows-delete-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},_R=class extends V{pipeId=pR;payload;payloadSchema=hR;billableOperations=gR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`rows-delete-sheet-v1-pipe0`)}getTemplatedFields(){return[this.payload.config.sheet,...(this.payload.config.where?.conditions??[]).map(e=>typeof e.value==`string`?e.value:null)]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[mR.name]:this.catalogOutput(mR)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},vR=hR,yR={pipeId:pR,basePipe:W(pR),label:`Delete rows in sheet`,executionMode:`single`,categories:[`tools`,`actions`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Delete rows in ANOTHER pipe0 sheet matching a condition block. The replace-on-refresh building block: delete previously written downstream rows before re-appending fresh ones.`,guide:"Delete rows in another pipe0 sheet whose columns match config.where. This pipe is the delete half of the replace-on-refresh pattern. Pair it with the pipe that appends downstream rows (row:append:sheet@1 / row:expandappend:sheet@1), keyed on a stable join column, e.g. `user_id eq \"{{ user_id }}\"`. A re-enrichment first clears the rows it previously wrote and re-appends. Position in the pipes array is NOT execution order โ pipes run in dependency waves, independent pipes concurrently. Delete-before-append is enforced by the APPEND pipe's run_if referencing this pipe's (aliased) count output status eq completed, never by list ordering. config.sheet is the target's org-unique slug (literal or `{{ field }}` tag). config.where semantics match rows:find:sheet@1. field_name is a LITERAL target column, not validated against the target โ a wrong name behaves like a null cell and deletes NOTHING. String values may contain `{{ field }}` tags resolved per row. A value resolving to an empty string fails the row: a blank key must not delete everything. A target sheet that does not exist yet completes with sheet_deleted_count 0 โ first runs happen before downstream sheets exist, by design. The replace pattern usually needs SEVERAL instances on one sheet, one per downstream target. Output names are sheet-global: alias each instance's sheet_deleted_count (e.g. experiences_deleted_count / profiles_deleted_count), or the defaults collide and the payload won't validate. Skip-propagation protects previously written rows ONLY when the templated key is an enrichment OUTPUT โ the typed input skips on upstream failure. An INPUT column key like user_id is always satisfied, so the delete would run even on a failed refresh. Gate the delete with an explicit run_if on a success flag (e.g. a bucket:claim@1 is_claim_successful value eq true). Failed/no_result refreshes then keep the old rows. DESTRUCTIVE and NON-idempotent: deleted rows cannot be restored except via the target's timetravel. Rehearse in sandbox (env:change@1, the delete is mocked). After a partial failure, adopt succeeded cells (rows:adopt@1) before re-running. Deletes on the same target serialize (exclusive lock) โ expect modest throughput on large refreshes. Requires a pipe0 connection (list_connections).",docPath:G(pR),tags:[H.FIELDS],keywords:[`delete`,`remove`,`clear`,`replace`,`refresh`,`cleanup`,`another sheet`,`downstream`,`purge`],billableOperations:gR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:pR,connector:{strategy:`first`,connections:[]},run_if:null,config:{sheet:``,where:null,output_fields:{sheet_deleted_count:{alias:``,enabled:!0}}}}},bR=`SELECT table_schema, table_name, column_name, data_type FROM information_schema.columns WHERE table_schema NOT IN ('pg_catalog', 'information_schema') ORDER BY table_schema, table_name, ordinal_position`,xR=`table_catalog NOT IN ('system', '__databricks_internal') AND table_schema <> 'information_schema'`,SR=`SELECT table_catalog, table_schema, table_name FROM system.information_schema.tables WHERE ${xR} ORDER BY table_catalog, table_schema, table_name`,CR=`SELECT table_catalog, table_schema, table_name, column_name, data_type FROM system.information_schema.columns WHERE ${xR} ORDER BY table_catalog, table_schema, table_name, ordinal_position`;function wR(e){return typeof e==`string`?e:String(e??``)}function TR(e){let t=new Map;for(let n of e){let e=wR(n.table_schema),r=wR(n.table_name);if(!r)continue;let i=`${e}.${r}`,a=t.get(i);a||(a={schema:e,name:r,columns:[]},t.set(i,a)),a.columns.push({name:wR(n.column_name),type:wR(n.data_type)})}return t}function ER(e){return`${e.catalog?`${e.catalog}.`:``}${e.schema?`${e.schema}.`:``}${e.name}`}function DR(e,t){if(e.length===0)return{summary:`The connected database exposes no tables outside the system schemas โ nothing to query yet.`,data:{tables:[],truncated:t}};let n=e.map(e=>{if(e.columns.length===0)return`- ${ER(e)} โ (columns not listed; DESCRIBE or sample to inspect)`;let t=e.columns.slice(0,50),n=e.columns.length-t.length,r=t.map(e=>e.type?`${e.name}:${e.type}`:e.name).join(`, `);return`- ${ER(e)} โ ${r}${n>0?` (+${n} more)`:``}`}),r=e.some(e=>e.catalog)?` Names are fully qualified (catalog.schema.table) โ use them VERBATIM in config.query.`:``;return{summary:[`Schema map (${e.length} table${e.length===1?``:`s`}${t?`, truncated โ the database has more`:``}). Write config.query against these;${r} sample rows free via run_search_oneshot.`,...n].join(`
|
|
84
|
+
}`,inputType:`text`,maxLength:1e6,expectedTagType:`string`,expectedTagFormat:`text`,multiline:!0}).nullable(),headers:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.headers`,label:`Headers`,info:"In the value column, type `/` to insert a field or secret reference (e.g. `Bearer {{ secret โฆ }}`).",keyLabel:`Header`,valueLabel:`Value`,keyPlaceholder:`Authorization`,valuePlaceholder:`Bearer {{ secret โฆ }}`,maxKeys:50}),expected_response_schema:yd({sectionKey:`general`,groupPath:`config.advanced`,path:`config.expected_response_schema`,label:`Expected response shape`,description:`Optional JSON Schema. Successful responses that don't satisfy it are marked failed. Extra properties are always tolerated (whitelist).`,allowEmpty:!0}).optional(),output_fields:I(r.object({[iA.name]:D({fieldName:iA.name}),[aA.name]:D({fieldName:aA.name}),[oA.name]:D({fieldName:oA.name})}))})}),cA={"http-request-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:.001},mode:`always`}},ate=class extends V{pipeId=rA;payload;payloadSchema=sA;billableOperations=cA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`http-request-v1-pipe0`)}getTemplatedFields(){return[this.payload.config.url,this.payload.config.body,...Object.values(this.payload.config.query_params??{}),...Object.values(this.payload.config.headers??{})]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[iA.name]:this.catalogOutput(iA),[aA.name]:this.catalogOutput(aA),[oA.name]:this.catalogOutput(oA)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},ote=sA,ste={pipeId:rA,basePipe:W(rA),label:`HTTP request`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Make a generic GET/POST/PUT/PATCH/DELETE HTTP request and capture the JSON response. Optionally validate the response against a JSON schema.`,tags:[H.LOGIC,H.JSON,H.NEW],keywords:[`api`,`rest`,`webhook`,`fetch`,`get`,`post`,`endpoint`,`curl`],docPath:G(rA),hasSideEffects:!0,billableOperations:cA,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:rA,run_if:null,connector:null,config:{method:`GET`,url:``,query_params:{},body:``,headers:{},expected_response_schema:{},output_fields:{http_response_status:{alias:``,enabled:!0},http_response_body:{alias:``,enabled:!0},http_response_headers:{alias:``,enabled:!1}}}}},lA=`json:extract:multi@1`,uA=r.object({pipe_id:r.literal(lA),run_if:b(),connector:Ru(),config:r.object({json_extraction:nu()})}),dA={"json-extract-multi-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},cte=class extends V{pipeId=lA;payload;payloadSchema=uA;billableOperations=dA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`json-extract-multi-v1-pipe0`)}getInputRequirement(){return B({description:``,name:this.payload.config.json_extraction.field_name,format:null,label:``,type:`json`,resolvedName:this.payload.config.json_extraction.field_name})}getRawOutputFields(){let e={};for(let t of this.payload.config.json_extraction.extractions)e[t.output_field.name||t.output_field.name]={description:`Extracted value from JSON input field ${this.payload.config.json_extraction.field_name}.`,enabled:!0,format:t.output_field.format||null,label:t.output_field.label||`Extract JSON`,name:t.output_field.name,resolvedName:t.output_field.name,jsonMeta:null,type:t.output_field.type,isCatalogFIeld:!1,isPrimaryOutput:!1};return e}getConnectionsRequirements(){return[]}},lte=uA,ute={pipeId:lA,basePipe:W(lA),inputFieldMode:`config`,outputFieldMode:`config`,label:`JSON extract`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Extract nested JSON properties into new output fields.`,guide:'Deterministic JSON extraction โ PREFER this over prompt:run@1 whenever you need a value out of a JSON / known-schema column (no LLM, reproducible, schedulable). config.json_extraction.field_name is the source json column; each extraction has a JSONata `path` plus an output_field. Read the source column\'s JSON schema (get_pipe_schema / get_search_schema output fields, or get_sheet_schema) to author the path. Examples over a profile\'s employment_history array: `employment_history[is_current_employer=true][]` (array of current jobs โ output_field.type "json"); `employment_history[is_primary_current_employer=true].company_domain` (scalar โ output_field.type "string"). Set output_field.type to "json" for an object/array result, "string" for a scalar. CRITICAL for a list you will expand (e.g. into row:expandappend:sheet@1): a JSONata filter returns the matched ELEMENT when exactly one row matches but an ARRAY when several do โ so ALWAYS append the array constructor `[]` to force a consistent array in every row (`employment_history[is_current_employer=true][]`, not `...=true]`). Without it the column is an object in single-match rows and an array in others, and the downstream expand rejects the object rows. To confirm a NEW path resolves the shape you expect before running anything downstream, switch the sheet to SANDBOX (env:change@1) and run just this extraction โ it runs for REAL in sandbox (no writes, no spend), so you can read the actual result, fix the path, then switch back to production.',docPath:G(lA),tags:[H.JSON],keywords:[`parse`,`pick`,`path`,`nested`,`property`,`jsonata`,`unpack`],managedProviders:[`pipe0`],deprecatedProviders:[],allowedUserConnectionProviders:[],billableOperations:dA,defaultInputRequirement:null,defaultPayload:{pipe_id:lA,run_if:null,connector:null,config:{json_extraction:{field_name:``,extractions:[]}}}},fA=`lead:enroll:amplemarket@1`,pA={"lead-enroll-amplemarket-v1-amplemarket":{allowManagedConnection:!1,provider:`amplemarket`,credits:null,mode:null}},mA=_(`email`),hA=_(`profile_url`),gA=_(`amplemarket_sequence_id`),dte=new Set([`active`,`paused`]),fte=[{label:`Demo ยท Q3 Outbound`,value:`seq_sandbox_1`},{label:`Demo ยท Founder Intros`,value:`seq_sandbox_2`}],_A=1e4;async function vA({secret:e,signal:t}){let n=[],r=`https://api.amplemarket.com/sequences?page[size]=100`;for(let i=0;i<10&&r;i++){let i=await fetch(r,{headers:{Authorization:`Bearer ${e}`},signal:t});if(!i.ok){let e=await i.text();throw new q.HttpError({msg:e})}let a=await i.json();n.push(...a.sequences??[]);let o=a._links?.next?.href;r=o?new URL(o,`https://api.amplemarket.com`).toString():null}return n}const yA=r.object({pipe_id:r.literal(fA),connector:S(),run_if:b(),config:r.object({sequence_id:bd({sectionKey:`general`,required:!0,label:`Sequence`,groupPath:`config.general`,path:`config.sequence_id`,info:`The Amplemarket sequence to enroll the lead into (must be active or paused).`,guide:`The sequence must be active or paused.`,enabledIf:v(`amplemarket`),optionsDef:{requires:{connection:`amplemarket`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return fte;if(!t)throw new q.MissingSecretError({providerName:`amplemarket`});let r=(await vA({secret:t,signal:AbortSignal.timeout(_A)})).filter(e=>dte.has(e.status)).map(e=>({label:e.name,value:e.id}));return e?r.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):r},widgets:{provider_logo:{provider:`amplemarket`}}}}),input_fields:L(r.object({[mA.name]:T({fieldName:mA.name}),[hA.name]:T({fieldName:hA.name})})),custom_variables:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.custom_variables`,label:`Custom variables`,info:"Amplemarket dynamic fields, sent as the lead's data. The Variable name must match what your sequence references (e.g. `{{ pain_point }}`) โ case-sensitive, letters, digits, and underscores, no spaces. In the Value column, type `/` to insert a field or secret; leave a Value empty to skip that row. Amplemarket rejects the enrollment if the sequence references a dynamic field that is missing.",guide:"Amplemarket dynamic fields, sent as the lead's data. Keys must match what the sequence references (e.g. `{{ pain_point }}`) โ case-sensitive; letters, digits, and underscores only. An empty value skips that variable. Amplemarket rejects the enrollment when the sequence references a dynamic field that is missing.",keyLabel:`Variable`,valueLabel:`Value`,keyPlaceholder:`pain_point`,valuePlaceholder:`{{ pain_point }}`,maxKeys:50}).default({}),output_fields:I(r.object({[gA.name]:D({fieldName:gA.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.custom_variables??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`custom_variables`,n]});if(t.includes(`{{`)){r("Variable name must be a literal (no `{{ }}` templating).");continue}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){r(`Invalid Amplemarket dynamic-field name "${t}" โ use letters, digits, and underscores; no spaces.`);continue}t.length>255&&r(`Dynamic-field name "${t.slice(0,32)}โฆ" exceeds 255 characters.`)}})}),bA=e=>Of(B(K(mA,e)),Af(K(hA,e))),xA=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},SA=class extends V{pipeId=fA;payload;payloadSchema=yA;billableOperations=pA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`amplemarket`]}estimateBillableOperations(e){return U(e,`lead-enroll-amplemarket-v1-amplemarket`)}getCustomVariableValueTemplates(){return Object.values(this.payload.config.custom_variables??{})}getInputRequirement(){return Of(bA(this.payload.config),...xA(this.getCustomVariableValueTemplates()))}getSecretRequirements(){return J(this.getCustomVariableValueTemplates())}getConstantRequirements(){return mm(this.getCustomVariableValueTemplates())}getRawOutputFields(){return{[gA.name]:this.catalogOutput(gA)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitRatio:1,rateLimitOperation:`amplemarket_sequence_leads`,allowManagedConnection:!1}]}async getAgentContext({connectionSecrets:e,environment:t}){let n=this.payload.config.sequence_id,r=Array.isArray(n)?n[0]:n;if(!r)return null;if(t===`sandbox`)return{summary:`Sandbox: this sequence requires the dynamic fields first_name and pain_point โ set each via config.custom_variables.`,data:{sequence_name:`Demo ยท Q3 Outbound`,sequence_status:`active`,required_dynamic_fields:[`first_name`,`pain_point`],missing_dynamic_fields:[]}};let i=e.amplemarket;if(!i)throw new q.MissingSecretError({providerName:`amplemarket`});let a=await vA({secret:i,signal:AbortSignal.timeout(_A)}),o=a.find(e=>e.id===r);if(!o)return{summary:`No Amplemarket sequence with id "${r}" was found on this connection (checked ${a.length}). Re-resolve config.sequence_id via autocomplete_field before running โ don't guess the dynamic fields.`,data:{sequence_found:!1,required_dynamic_fields:[],missing_dynamic_fields:[]}};let s=o.dynamic_fields_used??[],c=new Set(Object.entries(this.payload.config.custom_variables??{}).filter(([e,t])=>e.trim()&&t?.trim()).map(([e])=>e.trim())),l=s.filter(e=>!c.has(e));return{summary:s.length===0?`Sequence "${o.name}" references no dynamic fields โ no custom variables to set.`:`Sequence "${o.name}" requires these dynamic fields โ set EVERY one via config.custom_variables (the value is a Liquid template over your sheet columns, e.g. {{ pain_point }}): ${s.join(`, `)}. Amplemarket rejects the enrollment if any of them is missing. The lead's email and LinkedIn URL travel via the input fields above, not here.`+(l.length>0?` Still unmapped: ${l.join(`, `)}.`:` All are mapped.`),data:{sequence_found:!0,sequence_name:o.name,sequence_status:o.status,required_dynamic_fields:s,missing_dynamic_fields:l}}}},CA=yA,wA={pipeId:fA,basePipe:W(fA),label:`Enroll Lead in Sequence`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Add a lead to an Amplemarket sequence, with custom dynamic fields.`,guide:`Enrollment is an external write: a completed cell means that row's person is in the live outbound sequence, and recomputing a completed cell re-enrolls them โ so scope any run over this pipe deliberately and rehearse a new flow in sandbox. Qualify rows by their data with run_if (e.g. a verified-email status).`,tags:[H.EMAIL],keywords:[`campaign`,`outreach`,`add`,`subscribe`,`outbound`,`email marketing`],docPath:G(fA),hasSideEffects:!0,billableOperations:pA,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`amplemarket`],defaultInputRequirement:bA(null),managedProviders:[],deprecatedProviders:[],defaultPayload:{pipe_id:fA,connector:{strategy:`first`,connections:[]},run_if:null,config:{sequence_id:``,input_fields:{email:{alias:``},profile_url:{alias:``}},custom_variables:{},output_fields:{amplemarket_sequence_id:{alias:``,enabled:!0}}}}},TA=`lead:enroll:lemlist@1`,EA={"lead-enroll-lemlist-v1-lemlist":{allowManagedConnection:!1,provider:`lemlist`,credits:null,mode:null}},DA=_(`email`),OA=_(`name`),kA=_(`first_name`),AA=_(`last_name`),jA=_(`company_name`),MA=_(`job_title`),NA=_(`profile_url`),PA=_(`phone`),FA=_(`lemlist_lead_id`),IA=_(`lemlist_enrollment_result`),LA=new Set([`email`,`firstName`,`lastName`,`name`,`companyName`,`jobTitle`,`linkedinUrl`,`phone`,`companyDomain`,`icebreaker`,`picture`]),RA=[{label:`Demo ยท Q3 Outbound`,value:`cam_sandbox_1`},{label:`Demo ยท Founder Intros`,value:`cam_sandbox_2`}],zA={requires:{connection:`lemlist`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return RA;if(!t)throw new q.MissingSecretError({providerName:`lemlist`});let r=await fetch(`https://api.lemlist.com/api/campaigns?limit=100`,{headers:{Authorization:`Basic ${t}`}});if(!r.ok){let e=await r.text();throw new q.HttpError({msg:e})}let i=await r.json(),a=(Array.isArray(i)?i:i.campaigns??[]).map(e=>({label:e.name,value:e._id}));return e?a.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):a},widgets:{provider_logo:{provider:`lemlist`}}};function BA(e){let t=new Set,n=new Set;try{let r=Vc(e);for(let[e,i]of Object.entries(r.inputs))(i.required?t:n).add(e)}catch{for(let n of e.matchAll(/\{\{\s*([A-Za-z_][A-Za-z0-9_]*)/g))t.add(n[1])}return{required:[...t],optional:[...n]}}const VA=r.object({pipe_id:r.literal(TA),connector:S(),run_if:b(),config:r.object({campaign_id:bd({sectionKey:`general`,required:!0,label:`Campaign`,groupPath:`config.general`,path:`config.campaign_id`,info:`The lemlist campaign to enroll the lead into.`,enabledIf:v(`lemlist`),optionsDef:zA}),input_fields:L(r.object({[DA.name]:T({fieldName:DA.name}),[OA.name]:T({fieldName:OA.name}),[kA.name]:T({fieldName:kA.name}),[AA.name]:T({fieldName:AA.name}),[jA.name]:T({fieldName:jA.name}),[MA.name]:T({fieldName:MA.name}),[NA.name]:T({fieldName:NA.name}),[PA.name]:T({fieldName:PA.name})})),custom_variables:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.custom_variables`,label:`Custom variables`,info:"lemlist custom variables, set on the lead after enrollment. The Variable name must match what your sequence references (e.g. `{{ painPoint }}`) โ case-sensitive, no spaces. In the Value column, type `/` to insert a field or secret; leave a Value empty to skip that row. Standard fields (company, job title, LinkedIn, phone) are set via the fields above, not here.",guide:"lemlist custom variables, set on the lead after enrollment. Keys must match what the sequence references (e.g. `{{ painPoint }}`) โ case-sensitive, no spaces. An empty value skips that variable. Standard fields (company, job title, LinkedIn, phone) are set via input_fields, not here.",keyLabel:`Variable`,valueLabel:`Value`,keyPlaceholder:`painPoint`,valuePlaceholder:`{{ pain_point }}`,maxKeys:50}),output_fields:I(r.object({[FA.name]:D({fieldName:FA.name}),[IA.name]:D({fieldName:IA.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.custom_variables??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`custom_variables`,n]});if(t.includes(`{{`)){r("Variable name must be a literal (no `{{ }}` templating).");continue}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){r(`Invalid lemlist variable name "${t}" โ use letters, digits, and underscores; no spaces.`);continue}LA.has(t)&&r(`"${t}" is a standard lemlist field โ set it via the dedicated field above, not as a custom variable.`)}})}),HA=e=>Of(B(K(DA,e)),kf(B(K(OA,e)),Of(B(K(kA,e)),B(K(AA,e)))),Af(K(jA,e)),Af(K(MA,e)),Af(K(NA,e)),Af(K(PA,e))),UA=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},WA=class extends V{pipeId=TA;payload;payloadSchema=VA;billableOperations=EA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`lemlist`]}estimateBillableOperations(e){return U(e,`lead-enroll-lemlist-v1-lemlist`)}getCustomVariableValueTemplates(){return Object.values(this.payload.config.custom_variables??{})}getInputRequirement(){return Of(HA(this.payload.config),...UA(this.getCustomVariableValueTemplates()))}getSecretRequirements(){return J(this.getCustomVariableValueTemplates())}getConstantRequirements(){return mm(this.getCustomVariableValueTemplates())}getRawOutputFields(){return{[FA.name]:this.catalogOutput(FA),[IA.name]:this.catalogOutput(IA)}}getConnectionsRequirements(){return[{provider:`lemlist`,rateLimitRatio:1,rateLimitOperation:`lemlist_create_lead`,allowManagedConnection:!1}]}async getAgentContext({connectionSecrets:e,environment:t}){let n=this.payload.config.campaign_id,r=Array.isArray(n)?n[0]:n;if(!r)return null;if(t===`sandbox`)return{summary:`Sandbox: this sequence references custom variables painPoint and eventLink โ set each via config.custom_variables.`,data:{required_custom_variables:[`painPoint`,`eventLink`],used_standard_fields:[`firstName`]}};let i=e.lemlist;if(!i)throw new q.MissingSecretError({providerName:`lemlist`});let a=await fetch(`https://api.lemlist.com/api/campaigns/${encodeURIComponent(r)}/sequences`,{headers:{Authorization:`Basic ${i}`},signal:AbortSignal.timeout(1e4)});if(!a.ok){let e=await a.text();throw new q.HttpError({msg:e})}let o=await a.json(),s=new Set;for(let e of Object.values(o??{}))for(let t of e?.steps??[])for(let e of[t?.subject,t?.message]){if(!e)continue;let{required:t,optional:n}=BA(e);for(let e of[...t,...n])s.add(e)}let c=[...s].filter(e=>LA.has(e)),l=[...s].filter(e=>!LA.has(e));return{summary:l.length===0?`This sequence uses only standard lemlist fields โ no custom variables to set.`:`This sequence requires these custom variables โ set each via config.custom_variables (the value is a Liquid template over your sheet columns, e.g. {{ pain_point }}): ${l.join(`, `)}. Standard fields (email, firstName, โฆ) are populated by the input fields above, not here.`,data:{required_custom_variables:l,used_standard_fields:c}}}},GA=VA,KA={pipeId:TA,basePipe:W(TA),label:`Enroll Lead in Campaign`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Add a lead to a lemlist campaign sequence, with custom variables.`,guide:`Enrollment is an external write: a completed cell means that row's person is in the live outbound campaign, and recomputing a completed cell re-enrolls them โ so scope any run over this pipe deliberately and rehearse a new flow in sandbox. Qualify rows by their data with run_if (e.g. a verified-email status).`,tags:[H.EMAIL],keywords:[`sequence`,`outreach`,`add`,`subscribe`,`outbound`,`email marketing`],docPath:G(TA),hasSideEffects:!0,billableOperations:EA,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`lemlist`],defaultInputRequirement:HA(null),managedProviders:[],deprecatedProviders:[],defaultPayload:{pipe_id:TA,connector:{strategy:`first`,connections:[]},run_if:null,config:{campaign_id:``,input_fields:{email:{alias:``},name:{alias:``},first_name:{alias:``},last_name:{alias:``},company_name:{alias:``},job_title:{alias:``},profile_url:{alias:``},phone:{alias:``}},custom_variables:{},output_fields:{lemlist_lead_id:{alias:``,enabled:!0},lemlist_enrollment_result:{alias:``,enabled:!1}}}}},qA=`message:send-direct:slack@1`,JA=_(`slack_direct_message_success`),YA=r.object({pipe_id:r.literal(qA),connector:S(),run_if:b(),config:r.object({slack_user_id:x({sectionKey:`general`,groupPath:`config.general`,path:`config.slack_user_id`,label:`Slack user ID`,info:"The member to DM (e.g. U024BE7LH) โ chains from the Slack channel members search. Type `@` to insert a field reference.",placeholder:`{{ slack_user_id }}`,inputType:`text`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`}),message:x({sectionKey:`general`,groupPath:`config.general`,path:`config.message`,label:`Message`,info:"The message body. Type `/` to insert a field, secret, or constant reference.",placeholder:`Hi {{ name }}, โฆ`,inputType:`text`,minLength:1,maxLength:4e4,expectedTagType:`string`,expectedTagFormat:`markdown`,multiline:!0}),output_fields:I(r.object({[JA.name]:D({fieldName:JA.name})}))})}),XA={"message-send-direct-slack-v1-slack":{allowManagedConnection:!1,provider:`slack`,credits:null,mode:null}},ZA=class extends V{pipeId=qA;payload;payloadSchema=YA;billableOperations=XA;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`slack`]}estimateBillableOperations(e){return U(e,`message-send-direct-slack-v1-slack`)}getTemplatedFields(){return[this.payload.config.slack_user_id,this.payload.config.message]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[JA.name]:this.catalogOutput(JA)}}getConnectionsRequirements(){return[{provider:`slack`,rateLimitRatio:1,rateLimitOperation:`slack_post_message`,allowManagedConnection:!1}]}},QA=YA,$A={pipeId:qA,basePipe:W(qA),label:`Send direct message`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Send a Slack direct message to a workspace member.`,guide:"Send a Slack DM to one member per row. `slack_user_id` is the member's workspace ID โ the people:channelmembers:slack@1 search outputs it, which makes 'list channel members โ DM each' a two-step chain. The message body is templated: reference upstream fields with `{{ field_name }}` and stored secrets with `{{ SECRETS.KEY }}`. The DM comes from the pipe0 app (bots cannot impersonate people). Requires a Slack vault connection (call list_connections to find one).",tags:[H.CHAT],keywords:[`dm`,`direct message`,`private message`,`notify`,`outreach`,`chat`],docPath:G(qA),hasSideEffects:!0,billableOperations:XA,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`slack`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:qA,connector:{strategy:`first`,connections:[]},run_if:null,config:{slack_user_id:`{{ slack_user_id }}`,message:``,output_fields:{slack_direct_message_success:{alias:``,enabled:!0}}}}},ej=[{label:`#demo-general`,value:`C0SANDBOX001`},{label:`#demo-alerts`,value:`C0SANDBOX002`}],tj=`https://slack.com/api/conversations.list?limit=200&exclude_archived=true&types=public_channel,private_channel`,nj={requires:{connection:`slack`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return ej;if(!t)throw new q.MissingSecretError({providerName:`slack`});let r=[],i=null;for(let e=0;e<5;e++){let e=await fetch(i?`${tj}&cursor=${encodeURIComponent(i)}`:tj,{headers:{Authorization:`Bearer ${t}`}});if(!e.ok){let t=await e.text();throw new q.HttpError({msg:t})}let n=await e.json();if(!n.ok)throw new q.HttpError({msg:n.error??`slack_error`});for(let e of n.channels??[])r.push({label:`#${e.name}${e.is_ext_shared?` (Slack Connect)`:``}`,value:e.id});if(i=n.response_metadata?.next_cursor||null,!i)break}return e?r.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):r},widgets:{provider_logo:{provider:`slack`}}},rj=`message:send:slack@1`,ij=_(`slack_message_success`),aj=r.object({pipe_id:r.literal(rj),connector:S(),run_if:b(),config:r.object({channel_id:x({sectionKey:`general`,groupPath:`config.general`,path:`config.channel_id`,label:`Channel ID`,info:"Your connection must be authorized to post to this channel. Type `/` to insert a field, secret, or constant reference.",guide:`The connection must be authorized to post to this channel.`,placeholder:`C0123456789`,inputType:`text`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:nj}),message:x({sectionKey:`general`,groupPath:`config.general`,path:`config.message`,label:`Message`,info:"The message body. Type `/` to insert a field, secret, or constant reference.",placeholder:`Hi {{ name }}, โฆ`,inputType:`text`,minLength:1,maxLength:4e4,expectedTagType:`string`,expectedTagFormat:`markdown`,multiline:!0}),output_fields:I(r.object({[ij.name]:D({fieldName:ij.name})}))})}),oj={"message-send-slack-v1-slack":{allowManagedConnection:!1,provider:`slack`,credits:null,mode:null}},sj=class extends V{pipeId=rj;payload;payloadSchema=aj;billableOperations=oj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`slack`]}estimateBillableOperations(e){return U(e,`message-send-slack-v1-slack`)}getTemplatedFields(){return[this.payload.config.channel_id,this.payload.config.message]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[ij.name]:this.catalogOutput(ij)}}getConnectionsRequirements(){return[{provider:`slack`,rateLimitRatio:1,rateLimitOperation:`slack_post_message`,allowManagedConnection:!1}]}},cj=aj,lj={pipeId:rj,basePipe:W(rj),label:`Send message into channel`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Send a Slack message to a channel.`,guide:"Send a Slack message. The channel ID and message body are templated config fields โ reference upstream fields with `{{ field_name }}` and stored secrets with `{{ SECRETS.KEY }}`. Requires a Slack vault connection (call list_connections to find one).",tags:[H.CHAT],keywords:[`notify`,`notification`,`alert`,`post`,`chat`],docPath:G(rj),hasSideEffects:!0,billableOperations:oj,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`slack`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:rj,connector:{strategy:`first`,connections:[]},run_if:null,config:{channel_id:``,message:``,output_fields:{slack_message_success:{alias:``,enabled:!0}}}}},uj=`message:write@1`,dj=_(`message`),fj=`message-write-v1`,pj=jl(fj),mj=r.object({pipe_id:r.literal(uj),connector:C(),run_if:b(),config:r.object({template:Iu({sectionKey:`general`,label:`Template`,path:`config.template`,placeholder:X(`prompt`),groupPath:`config.prompt`,required:!0}),model:hd({sectionKey:`general`,label:`Model`,path:`config.model`,groupPath:`config.prompt`,billableOperations:pj,defaultValue:Sl}),output_fields:I(r.object({[dj.name]:D({fieldName:dj.name})}))})}),hj=class extends V{pipeId=uj;payload;payloadSchema=mj;billableOperations=pj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return wl(this.payload.config.model)}estimateBillableOperations(e){return Nl(e,{model:this.payload.config.model,prefix:fj,inputTokens:600,outputTokens:800})}getInputRequirement(){return pm([this.payload.config.template])}getSecretRequirements(){return J([this.payload.config.template])}getConstantRequirements(){return mm([this.payload.config.template])}getRawOutputFields(){return{[dj.name]:this.catalogOutput(dj)}}getConnectionsRequirements(){return Tl(this.payload.config.model)}},gj=mj,_j={pipeId:uj,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(uj),label:`Message writer`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`An AI agent specialized in composing messages for modern workplace communication platforms (Slack, Teams, Discord, etc.)`,guide:`AI message composer for Slack/Teams/Discord. Outputs: message. Pair with message:send:slack@1 to send.`,tags:[H.AI],keywords:[`ai`,`compose`,`draft`,`copywriting`,`outreach`,`slack`,`teams`],docPath:G(uj),defaultInputRequirement:null,billableOperations:pj,allowedUserConnectionProviders:El(),managedProviders:El(),deprecatedProviders:[],defaultPayload:{pipe_id:uj,connector:null,run_if:null,config:{model:Sl,template:``,output_fields:{message:{alias:``,enabled:!0}}}}},vj=_(`hubspot_object_id`),yj=_(`hubspot_associated_count`),bj=_(`hubspot_associated_objects`),xj=`object:associations:hubspot@1`,Sj=r.object({pipe_id:r.literal(xj),run_if:b(),connector:S(),config:r.object({from_object_type:bd({sectionKey:`general`,required:!0,label:`From object type`,groupPath:`config.general`,path:`config.from_object_type`,info:`The type of the source record (standard or custom object).`,enabledIf:v(`hubspot`),optionsDef:xm}),to_object_type:bd({sectionKey:`general`,required:!0,label:`To object type`,groupPath:`config.general`,path:`config.to_object_type`,info:`The type of the associated records to retrieve (standard or custom object).`,enabledIf:v(`hubspot`),optionsDef:xm}),association_label:bd({sectionKey:`general`,required:!1,label:`Association label`,groupPath:`config.general`,path:`config.association_label`,info:`Only follow associations with this label (labels are portal-specific, e.g. "Decision maker"). Empty = all associations.`,enabledIf:v(`hubspot`),optionsDef:Sm}),properties:nd({sectionKey:`general`,label:`Properties`,groupPath:`config.general`,path:`config.properties`,placeholder:`name`,info:`HubSpot internal property names of the TARGET object to include per associated record. Empty = HubSpot's default properties.`,guide:`HubSpot internal property names of the TARGET object, included per associated record. Empty = HubSpot's default property set.`}),limit:_d({sectionKey:`general`,label:`Limit`,groupPath:`config.general`,path:`config.limit`,info:``,min:1,max:100}).default(20),input_fields:L(r.object({[vj.name]:T({fieldName:vj.name})})),output_fields:I(r.object({[yj.name]:D({fieldName:yj.name}),[bj.name]:D({fieldName:bj.name})}))})}),Cj=e=>B(K(vj,e)),wj={"object-associations-hubspot-v1-hubspot":{allowManagedConnection:!1,credits:null,mode:null,provider:`hubspot`}},Tj=class extends V{pipeId=xj;payload;payloadSchema=Sj;billableOperations=wj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`hubspot`]}estimateBillableOperations(e){return U(e,`object-associations-hubspot-v1-hubspot`)}getInputRequirement(){return Cj(this.payload.config)}getRawOutputFields(){return{[yj.name]:this.catalogOutput(yj),[bj.name]:this.catalogOutput(bj)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitRatio:1,rateLimitOperation:`hubspot_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.to_object_type,n=Array.isArray(t)?t[0]??``:t;return Em(e,{objectTypes:[[n||`target object`,n||`0-1`]]})}},Ej=Sj,Dj={pipeId:xj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(xj),label:`HubSpot associated objects`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Retrieve the HubSpot records associated with a source record โ one level of joins across standard and custom objects (e.g. a company's deals, or a custom object linked to a company).`,tags:[H.FIELDS],keywords:[`crm`,`join`,`related`,`association`,`custom object`,`linked`],docPath:G(xj),guide:"Associations are HubSpot's joins โ the Search API never returns them, so this pipe is the way to fetch related records. The source-record input consumes `hubspot_object_id`, which every HubSpot surface emits (alias it to point at a differently named column); the from-object type must match the record the ID belongs to. Activities (notes, tasks, calls, meetings, emails) are associated objects too โ pick them as the to-object to read a record's timeline; when you leave properties empty for an engagement the pipe fills a sensible default set (timestamp + body/subject). Association labels are portal-specific; leave the label empty to follow all associations. Zero associations is a successful result (count = 0). Target-object properties use internal names โ call get_provider_context for the portal's catalog.",billableOperations:wj,allowedUserConnectionProviders:[`hubspot`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Cj(null),defaultPayload:{pipe_id:xj,connector:{strategy:`first`,connections:[]},run_if:null,config:{from_object_type:`0-2`,to_object_type:`0-3`,association_label:``,properties:[],limit:20,input_fields:{hubspot_object_id:{alias:``}},output_fields:{hubspot_associated_count:{alias:``,enabled:!0},hubspot_associated_objects:{alias:``,enabled:!0}}}}},Oj=_(`hubspot_object_id`),kj=_(`hubspot_update_result`),Aj=`object:update:hubspot@1`,jj=r.object({pipe_id:r.literal(Aj),run_if:b(),connector:S(),config:r.object({object_type:bd({sectionKey:`general`,required:!0,label:`Object type`,groupPath:`config.general`,path:`config.object_type`,info:`Standard objects plus this portal's custom objects (custom objects need HubSpot Enterprise).`,guide:`Standard objects plus this portal's custom objects. Custom objects need HubSpot Enterprise.`,enabledIf:v(`hubspot`),optionsDef:xm}),properties:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.properties`,label:`Property values`,info:"Property = the HubSpot internal name (e.g. `jobtitle`, custom properties too). In the Value column, type `/` to insert a field reference. Enumeration values must be existing internal option values (case-sensitive).",guide:"Keys are HubSpot internal property names (e.g. `jobtitle`), custom properties included.",keyLabel:`Property`,valueLabel:`Value`,keyPlaceholder:`jobtitle`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),ignore_blank_values:ud({sectionKey:`general`,defaultValue:!0,label:`Ignore blank values`,groupPath:`config.general`,path:`config.ignore_blank_values`,info:`ON: rows whose value renders empty are skipped, preserving CRM data. OFF: empty values CLEAR the property in HubSpot.`}),input_fields:L(r.object({[Oj.name]:T({fieldName:Oj.name})})),output_fields:I(r.object({[kj.name]:D({fieldName:kj.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.properties??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`properties`,n]});if(t.includes(`{{`)){r("Property name must be a literal internal name (no `{{ }}` templating).");continue}/^[a-z][a-z0-9_]*$/.test(t)||r(`Invalid HubSpot property name "${t}" โ internal names are lowercase letters, digits, and underscores.`)}})}),Mj=e=>B(K(Oj,e)),Nj={"object-update-hubspot-v1-hubspot":{allowManagedConnection:!1,credits:null,mode:null,provider:`hubspot`}},Pj=class extends V{pipeId=Aj;payload;payloadSchema=jj;billableOperations=Nj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`hubspot`]}estimateBillableOperations(e){return U(e,`object-update-hubspot-v1-hubspot`)}getTemplates(){return Object.values(this.payload.config.properties??{}).filter(e=>!!e)}getInputRequirement(){return Of(Mj(this.payload.config),..._m(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[kj.name]:this.catalogOutput(kj)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitRatio:1,rateLimitOperation:`hubspot_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object_type,n=Array.isArray(t)?t[0]??``:t;return Em(e,{objectTypes:[[n||`contacts`,n||`0-1`]],writableOnly:!0})}},Fj=jj,Ij={pipeId:Aj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(Aj),label:`HubSpot update object`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update a HubSpot record (standard or custom object) by its record ID, mapping columns to properties. Blank values are skipped by default so un-enriched cells never erase CRM data.`,tags:[H.FIELDS],keywords:[`crm`,`write`,`sync`,`record`,`property`,`custom object`],docPath:G(Aj),guide:"The object-ID input consumes `hubspot_object_id`, which every HubSpot surface emits โ chain from a match pipe (Lookup โ Update by ID is the canonical HubSpot recipe; there is no reliable upsert for companies). Call get_provider_context for the selected object type to see WRITABLE properties and enumeration option values โ HubSpot rejects read-only properties and unknown enum values (case-sensitive, never auto-created). Property writes fire the portal's workflows; rows where every value renders blank skip the API call entirely. With 'Ignore blank values' OFF, an empty value CLEARS the property in HubSpot.",billableOperations:Nj,allowedUserConnectionProviders:[`hubspot`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Mj(null),defaultPayload:{pipe_id:Aj,connector:{strategy:`first`,connections:[]},run_if:null,config:{object_type:`0-1`,properties:{},ignore_blank_values:!0,input_fields:{hubspot_object_id:{alias:``}},output_fields:{hubspot_update_result:{alias:``,enabled:!0}}}}},Lj=_(`company_domain`),Rj=_(`email`),zj=_(`salesforce_opportunities_found_count`),Bj=_(`salesforce_record_id`),Vj=_(`salesforce_opportunity_matches`),Hj=`opportunity:match:salesforce@1`,Uj=r.object({pipe_id:r.literal(Hj),run_if:b(),connector:S(),config:r.object({status:md({sectionKey:`general`,required:!1,label:`Opportunity status`,groupPath:`config.general`,path:`config.status`,description:`Filters on Salesforce's computed IsClosed / IsWon โ org-invariant, unlike stage names.`,options:[{label:`Any`,value:`any`},{label:`Open`,value:`open`},{label:`Won`,value:`won`},{label:`Lost`,value:`lost`}]}).default(`any`),stage:bd({sectionKey:`general`,required:!1,label:`Stage`,groupPath:`config.general`,path:`config.stage`,info:`Only match opportunities in this stage (the org's own OpportunityStage list). Empty = all stages.`,enabledIf:v(`salesforce`),optionsDef:ap}),custom_properties:nd({sectionKey:`general`,label:`Custom fields`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`NextStep`,info:"Field API names added to each match JSON under `custom_properties` (standard-set names are already top-level).",guide:"Field API names added to each match JSON under `custom_properties` โ standard-set names are already top-level."}),input_fields:L(r.object({[Lj.name]:T({fieldName:Lj.name}),[Rj.name]:T({fieldName:Rj.name})})),output_fields:I(r.object({[zj.name]:D({fieldName:zj.name}),[Bj.name]:D({fieldName:Bj.name}),[Vj.name]:D({fieldName:Vj.name})}))}).optional()}),Wj=e=>kf(B(K(Lj,e)),B(K(Rj,e))),Gj={"opportunity-match-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},Kj=class extends V{pipeId=Hj;payload;payloadSchema=Uj;billableOperations=Gj;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`opportunity-match-salesforce-v1-salesforce`)}getInputRequirement(){return Wj(this.payload.config)}getRawOutputFields(){return{[zj.name]:this.catalogOutput(zj),[Bj.name]:this.catalogOutput(Bj),[Vj.name]:this.catalogOutput(Vj)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Opportunity`],includeStages:!0})}},qj=Uj,Jj={pipeId:Hj,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(Hj),label:`Salesforce opportunity match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Find opportunities in your Salesforce org for a company (by domain, via the matched account) or person (by email, via contact roles) โ opportunities have no natural key of their own. A clean miss completes with count = 0.`,tags:[H.WEBSITE,H.EMAIL],keywords:[`crm`,`sfdc`,`deal`,`pipeline`,`lookup`,`exists`,`revenue`],docPath:G(Hj),guide:"Domain input resolves via account match โ Opportunity.AccountId (preferred when both inputs are present); email resolves via the contact's OpportunityContactRole (note: OCRs the connected user cannot see are silently missed under private sharing). Filter open/won via `status` (computed IsClosed/IsWon โ never assume a stage named 'Closed Won' exists); `stage` values are OpportunityStage ApiNames from get_provider_context. Contact roles ride each match as `contact_roles` edge metadata. found_count = 0 is a successful result.",billableOperations:Gj,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Wj(null),defaultPayload:{pipe_id:Hj,connector:{strategy:`first`,connections:[]},run_if:null,config:{status:`any`,stage:``,custom_properties:[],input_fields:{company_domain:{alias:``},email:{alias:``}},output_fields:{salesforce_opportunities_found_count:{alias:``,enabled:!0},salesforce_record_id:{alias:``,enabled:!0},salesforce_opportunity_matches:{alias:``,enabled:!0}}}}},Yj=`person:devprofileurl:profileurl:waterfall@1`,Xj=_(`profile_url`),Zj=_(`developer_profile_url`),Qj=_(`alternative_developer_profile_urls`),$j=[`crustdata`],eM=[{provider:`crustdata`}],tM=r.object({pipe_id:r.literal(Yj),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:eM,availableProviders:$j}),input_fields:L(r.object({[Xj.name]:T({fieldName:Xj.name})})),output_fields:I(r.object({[Zj.name]:D({fieldName:Zj.name}),[Qj.name]:D({fieldName:Qj.name})}))}).optional()}),nM=e=>B(K(Xj,e)),rM={"person-devprofileurl-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1.3,weight:1}},mode:`onSuccess`}},iM=class extends V{pipeId=Yj;payload;payloadSchema=tM;billableOperations=rM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return nM(this.payload.config)}getRawOutputFields(){return{[Zj.name]:this.catalogOutput(Zj,{isPrimaryOutput:!0}),[Qj.name]:this.catalogOutput(Qj,{isPrimaryOutput:!1})}}getConnectionsRequirements(){let e={crustdata:`crustdata_realtime_person_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},aM=tM,oM={pipeId:Yj,basePipe:W(Yj),label:`GitHub profile from LinkedIn URL`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a developer profile URL (e.g. GitHub) for any prospect using multiple data providers in a waterfall motion.`,docPath:G(Yj),tags:[H.LINKEDIN,H.WATERFALL,H.NEW],keywords:[`developer`,`dev`,`engineer`,`coder`,`git`],billableOperations:rM,defaultInputRequirement:nM(null),inputFieldMode:`static`,outputFieldMode:`static`,managedProviders:$j,allowedUserConnectionProviders:$j,deprecatedProviders:[],defaultPayload:{pipe_id:Yj,connector:null,run_if:null,config:{providers:eM,input_fields:{profile_url:{alias:``}},output_fields:{developer_profile_url:{alias:``,enabled:!0},alternative_developer_profile_urls:{alias:``,enabled:!1}}}}},sM=`person:email:validate:millionverifier@1`,cM=_(`email`),lM=_(`email_validation_status`),uM=_(`million_validation_match`),dM=r.object({pipe_id:r.literal(sM),connector:C(),run_if:b(),config:r.object({input_fields:L(r.object({[cM.name]:T({fieldName:cM.name})})),output_fields:I(r.object({[lM.name]:D({fieldName:lM.name}),[uM.name]:D({fieldName:uM.name})}))}).optional()}),fM=e=>B(K(cM,e)),pM={"person-email-validate-millionverifier-v1-millionverifier":{provider:`millionverifier`,allowManagedConnection:!0,credits:{default:.1,level1:{credits:.05,weight:1}},mode:`always`}},mM=class extends V{pipeId=sM;payload;payloadSchema=dM;billableOperations=pM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`millionverifier`]}estimateBillableOperations(e){return U(e,`person-email-validate-millionverifier-v1-millionverifier`)}getInputRequirement(){return fM(this.payload.config)}getRawOutputFields(){return{[lM.name]:this.catalogOutput(lM),[uM.name]:this.catalogOutput(uM)}}getConnectionsRequirements(){return[{provider:`millionverifier`,rateLimitRatio:1,rateLimitOperation:`millionverifier_generic`,allowManagedConnection:!0}]}},hM=dM,gM={pipeId:sM,basePipe:W(sM),label:`Validate email`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Verify email addresses to ensure is deliverability.`,tags:[H.EMAIL],keywords:[`verify`,`verification`,`deliverability`,`bounce`,`check`,`clean`],docPath:G(sM),billableOperations:pM,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`millionverifier`],managedProviders:[`millionverifier`],deprecatedProviders:[],defaultInputRequirement:fM(null),defaultPayload:{pipe_id:sM,connector:null,run_if:null,config:{input_fields:{email:{alias:``}},output_fields:{email_validation_status:{alias:``,enabled:!0},million_validation_match:{alias:``,enabled:!0}}}}},_M=`person:identity:email:waterfall@2`,vM=_(`email`),yM=_(`profile_url`),bM=_(`person_profile_match`),xM=[`hunter`,`surfe`,`crustdata`,`mixrank`,`aviato`],SM=[{provider:`mixrank`},{provider:`aviato`},{provider:`surfe`},{provider:`crustdata`}],CM=r.object({pipe_id:r.literal(_M),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:xM,defaultProviders:SM,sectionKey:`general`}),input_fields:L(r.object({[vM.name]:T({fieldName:vM.name})})),output_fields:I(r.object({[yM.name]:D({fieldName:yM.name}),[bM.name]:D({fieldName:bM.name})}))}).optional()}),wM=e=>B(K(vM,e)),TM={"person-identity-email-waterfall-v2-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:2.5,level1:{credits:1.25,weight:1}},mode:`onSuccess`},"person-identity-email-waterfall-v2-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:5,level1:{credits:3,weight:3}},mode:`onSuccess`},"person-identity-email-waterfall-v2-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5,level1:{credits:2.5,weight:1}},mode:`onSuccess`},"person-identity-email-waterfall-v2-mixrank":{provider:`mixrank`,allowManagedConnection:!0,credits:{default:1.2,level1:{credits:.75,weight:1}},mode:`onSuccess`},"person-identity-email-waterfall-v2-aviato":{provider:`aviato`,allowManagedConnection:!0,credits:{default:3.5},mode:`onSuccess`}},EM=class extends V{pipeId=_M;payload;payloadSchema=CM;billableOperations=TM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return wM(this.payload.config)}getRawOutputFields(){return{[yM.name]:this.catalogOutput(yM),[bM.name]:this.catalogOutput(bM,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={hunter:`hunter_email_enrichment`,surfe:`surfe_people_enrich`,crustdata:`crustdata_realtime_person_enrich`,mixrank:`mixrank-person-match`,aviato:`aviato_person_enrich`},t=this.payload.config?.providers||[],n=t.map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0})),r=t.map((e,t)=>e.provider===`hunter`||e.provider===`surfe`?t:-1).filter(e=>e!==-1);return r.length>0&&n.push({provider:`amplemarket`,rateLimitRatio:Y(Math.min(...r)),rateLimitOperation:`amplemarket_people_find`,allowManagedConnection:!0}),n}},DM=CM,OM={pipeId:_M,basePipe:W(_M),label:`Full LinkedIn profile from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a person's LinkedIn profile URL and a standardized JSON profile from their email address.`,tags:[H.EMAIL,H.PEOPLE_PROFILES,H.LINKEDIN,H.WATERFALL],keywords:[`enrich`,`enrichment`,`reverse lookup`,`contact`,`identity`,`person`],docPath:G(_M),managedProviders:xM,deprecatedProviders:[],allowedUserConnectionProviders:xM,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:TM,defaultInputRequirement:wM(null),defaultPayload:{pipe_id:_M,connector:null,run_if:null,config:{providers:SM,input_fields:{email:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0},person_profile_match:{alias:``,enabled:!0}}}}},kM=_(`email`),AM=_(`attio_person_found`),jM=_(`attio_record_id`),MM=_(`attio_person_match`),NM=`person:match:attio@1`,PM=r.object({pipe_id:r.literal(NM),run_if:b(),connector:S(),config:r.object({custom_properties:nd({sectionKey:`general`,label:`Custom attributes`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`job_title`,optionsDef:Hp({target:`objects`,identifier:`people`}),info:'Attio attribute api_slugs to include in the match output (e.g. `job_title`, not "Job title"). Custom attributes work too and nest under `custom_properties`. Empty = a standard identity set.',guide:"Attribute api_slugs (e.g. `job_title`), custom attributes included. Picked attributes nest under `custom_properties` in the match output. Empty = a standard identity set."}),input_fields:L(r.object({[kM.name]:T({fieldName:kM.name})})),output_fields:I(r.object({[AM.name]:D({fieldName:AM.name}),[jM.name]:D({fieldName:jM.name}),[MM.name]:D({fieldName:MM.name})}))}).optional()}),FM=e=>B(K(kM,e)),IM={"person-match-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},LM=class extends V{pipeId=NM;payload;payloadSchema=PM;billableOperations=IM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`person-match-attio-v1-attio`)}getInputRequirement(){return FM(this.payload.config)}getRawOutputFields(){return{[AM.name]:this.catalogOutput(AM),[jM.name]:this.catalogOutput(jM),[MM.name]:this.catalogOutput(MM)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_query`,allowManagedConnection:!1}]}async getAgentContext(e){return Wp(e,{objects:[`people`]})}},RM=PM,zM={pipeId:NM,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(NM),label:`Attio person match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Check whether a person exists in your Attio workspace by email. email_addresses is Attio's unique identity attribute, so any address on a record matches exactly; a clean miss completes with found = false.`,tags:[H.EMAIL],keywords:[`crm`,`lookup`,`exists`,`dedupe`,`record`,`contact`],docPath:G(NM),guide:"Call get_provider_context first to discover this workspace's attributes; use attribute api_slugs verbatim (e.g. `job_title`). email_addresses is unique + multiselect โ one exact match covers every address on the record, so there is no secondary-email option. found = false is a successful result โ gate follow-up pipes with run_if on it. Chain the attio_record_id output into record:update:attio@1 or record:lookup:attio@1. No email column yet? Chain a work-email pipe (e.g. people:workemail:waterfall@1) ahead of this one and match on its output.",billableOperations:IM,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:FM(null),defaultPayload:{pipe_id:NM,connector:{strategy:`first`,connections:[]},run_if:null,config:{custom_properties:[],input_fields:{email:{alias:``}},output_fields:{attio_person_found:{alias:``,enabled:!0},attio_record_id:{alias:``,enabled:!0},attio_person_match:{alias:``,enabled:!0}}}}},BM=_(`email`),VM=_(`salesforce_person_found`),HM=_(`salesforce_record_id`),UM=_(`salesforce_person_match`),WM=`person:match:salesforce@1`,GM=r.object({pipe_id:r.literal(WM),run_if:b(),connector:S(),config:r.object({match_scope:md({sectionKey:`general`,required:!1,label:`Match scope`,groupPath:`config.general`,path:`config.match_scope`,description:`Which Salesforce person shapes to probe. Person Accounts are included automatically when the org has them.`,options:[{label:`Contacts and leads`,value:`contacts_and_leads`},{label:`Contacts only`,value:`contacts_only`},{label:`Leads only`,value:`leads_only`}]}).default(`contacts_and_leads`),custom_properties:nd({sectionKey:`general`,label:`Custom fields`,groupPath:`config.general`,path:`config.custom_properties`,placeholder:`Lead_Score__c`,info:"Field API names added to the match JSON under `custom_properties` (standard-set names are already top-level). Dotted parent paths like `Account.Industry` work.",guide:"Field API names added to the match JSON under `custom_properties` โ standard-set names are already top-level. Dotted parent paths like `Account.Industry` work."}),input_fields:L(r.object({[BM.name]:T({fieldName:BM.name})})),output_fields:I(r.object({[VM.name]:D({fieldName:VM.name}),[HM.name]:D({fieldName:HM.name}),[UM.name]:D({fieldName:UM.name})}))}).optional()}),KM=e=>B(K(BM,e)),qM={"person-match-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},JM=class extends V{pipeId=WM;payload;payloadSchema=GM;billableOperations=qM;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`person-match-salesforce-v1-salesforce`)}getInputRequirement(){return KM(this.payload.config)}getRawOutputFields(){return{[VM.name]:this.catalogOutput(VM),[HM.name]:this.catalogOutput(HM),[UM.name]:this.catalogOutput(UM)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Contact`,`Lead`]})}},YM=GM,XM={pipeId:WM,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(WM),label:`Salesforce person match`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Check whether a person exists in your Salesforce org by email โ across Contacts, Leads, and Person Accounts in one call, with deterministic precedence and converted-lead redirect. A clean miss completes with found = false.`,tags:[H.EMAIL],keywords:[`crm`,`sfdc`,`contact`,`lead`,`lookup`,`exists`,`dedupe`],docPath:G(WM),guide:"Matches by exact email in ONE API call across up to three shapes, with precedence: live Contact โ converted Lead's contact (is_converted_redirect = true) โ live Lead โ Person Account. found = false is a successful result โ gate follow-ups with run_if on it. `object_type` in the match JSON says which shape matched; chain `salesforce_record_id` into record:update:salesforce@1 or record:lookup:salesforce@1. Note: 'no match' can also mean the connected user lacks record access (private sharing).",billableOperations:qM,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:KM(null),defaultPayload:{pipe_id:WM,connector:{strategy:`first`,connections:[]},run_if:null,config:{match_scope:`contacts_and_leads`,custom_properties:[],input_fields:{email:{alias:``}},output_fields:{salesforce_person_found:{alias:``,enabled:!0},salesforce_record_id:{alias:``,enabled:!0},salesforce_person_match:{alias:``,enabled:!0}}}}},ZM=`person:mobile:profileurl:waterfall@1`,QM=_(`profile_url`),$M=_(`mobile`),eN=[`wiza`,`leadmagic`,`surfe`,`prospeo`,`amplemarket`,`crustdata`,`findymail`],tN=[`findymail`,`amplemarket`],nN=[{provider:`wiza`},{provider:`surfe`},{provider:`crustdata`}],rN=r.object({pipe_id:r.literal(ZM),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:nN,availableProviders:eN,deprecatedProviders:tN}),input_fields:L(r.object({[QM.name]:T({fieldName:QM.name})})),output_fields:I(r.object({[$M.name]:D({fieldName:$M.name})}))}).optional()}),iN=e=>B(K(QM,e)),aN={"person-mobile-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-prospeo":{provider:`prospeo`,allowManagedConnection:!0,credits:{default:7,level1:{credits:5.5,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:6,level1:{credits:4,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:7,level1:{credits:6,weight:1}},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:7},mode:`onSuccess`},"person-mobile-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:4,level1:{credits:3,weight:2}},mode:`onSuccess`}},oN=class extends V{pipeId=ZM;payload;payloadSchema=rN;billableOperations=aN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return iN(this.payload.config)}getRawOutputFields(){return{[$M.name]:this.catalogOutput($M,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_lookup`,surfe:`surfe_people_enrich`,prospeo:`prospeo_phone_number_lookup`,findymail:`findymail_phone_lookup`,amplemarket:`amplemarket_people_find`,crustdata:`crustdata_contact_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},sN=rN,cN={pipeId:ZM,basePipe:W(ZM),label:`Mobile number from LinkedIn profile`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a mobile phone number for any prospect using multiple data providers in a waterfall motion.`,docPath:G(ZM),tags:[H.PHONE,H.WATERFALL],keywords:[`phone`,`phone number`,`cell`,`direct dial`],billableOperations:aN,defaultInputRequirement:iN(null),inputFieldMode:`static`,outputFieldMode:`static`,managedProviders:eN,allowedUserConnectionProviders:eN,deprecatedProviders:tN,defaultPayload:{pipe_id:ZM,connector:null,run_if:null,config:{providers:nN,input_fields:{profile_url:{alias:``}},output_fields:{mobile:{alias:``,enabled:!0}}}}},lN=`person:mobile:workemail:waterfall@1`,uN=_(`work_email`),dN=_(`mobile`),fN=[`wiza`,`leadmagic`,`amplemarket`,`crustdata`],pN=[`amplemarket`],mN=[{provider:`wiza`},{provider:`leadmagic`},{provider:`crustdata`}],hN=r.object({pipe_id:r.literal(lN),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:fN,defaultProviders:mN,deprecatedProviders:pN}),input_fields:L(r.object({[uN.name]:T({fieldName:uN.name})})),output_fields:I(r.object({[dN.name]:D({fieldName:dN.name})}))}).optional()}),gN=e=>B(K(uN,e)),_N={"person-mobile-workemail-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:7,level1:{credits:6,weight:1}},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`},"person-mobile-workemail-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:4,level1:{credits:3,weight:2}},mode:`onSuccess`}},vN=class extends V{pipeId=lN;payload;payloadSchema=hN;billableOperations=_N;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return gN(this.payload.config)}getRawOutputFields(){return{[dN.name]:this.catalogOutput(dN,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_lookup`,amplemarket:`amplemarket_people_find`,crustdata:`crustdata_contact_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},yN=hN,bN={pipeId:lN,basePipe:W(lN),label:`Mobile number from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a mobile phone number for a prospect.`,tags:[H.PHONE,H.WATERFALL],keywords:[`phone`,`phone number`,`cell`,`direct dial`],docPath:G(lN),billableOperations:_N,defaultInputRequirement:gN(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:fN,managedProviders:fN,deprecatedProviders:pN,defaultPayload:{pipe_id:lN,connector:null,run_if:null,config:{providers:mN,input_fields:{work_email:{alias:``}},output_fields:{mobile:{alias:``,enabled:!0}}}}},xN=`person:name:join@1`,SN=_(`first_name`),CN=_(`last_name`),wN=_(`name`),TN=r.object({pipe_id:r.literal(xN),run_if:b(),connector:Ru(),config:r.object({input_fields:L(r.object({[SN.name]:T({fieldName:SN.name}),[CN.name]:T({fieldName:CN.name})})),output_fields:I(r.object({[wN.name]:D({fieldName:wN.name})}))}).optional()}),EN=e=>Of(K(SN,e),K(CN,e)),DN={"person-name-join-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},ON=class extends V{pipeId=xN;payload;payloadSchema=TN;billableOperations=DN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-name-join-v1-pipe0`)}getInputRequirement(){return EN(this.payload.config)}getRawOutputFields(){return{[wN.name]:this.catalogOutput(wN)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},kN=TN,AN={pipeId:xN,basePipe:W(xN),label:`Join name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Combine the first and last names of a prospect into a full name field.`,tags:[H.NAMES],keywords:[`combine`,`concatenate`,`merge`,`first`,`last`,`full`],docPath:G(xN),billableOperations:DN,defaultInputRequirement:EN(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:xN,run_if:null,connector:null,config:{input_fields:{first_name:{alias:``},last_name:{alias:``}},output_fields:{name:{alias:``,enabled:!0}}}}},jN=`person:name:split@1`,MN=_(`name`),NN=_(`first_name`),PN=_(`last_name`),FN=r.object({pipe_id:r.literal(jN),connector:Ru(),run_if:b(),config:r.object({input_fields:L(r.object({[MN.name]:T({fieldName:MN.name})})),output_fields:I(r.object({[NN.name]:D({fieldName:NN.name}),[PN.name]:D({fieldName:PN.name})}))}).optional()}),IN=e=>B(K(MN,e)),LN={"person-name-split-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},RN=class extends V{pipeId=jN;payload;payloadSchema=FN;billableOperations=LN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-name-split-v1-pipe0`)}getInputRequirement(){return IN(this.payload.config)}getRawOutputFields(){return{[NN.name]:this.catalogOutput(NN),[PN.name]:this.catalogOutput(PN)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},zN=FN,BN={pipeId:jN,basePipe:W(jN),label:`Split name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Split a full name into first and last name.`,tags:[H.NAMES],keywords:[`parse`,`separate`,`first`,`last`,`full`],docPath:G(jN),billableOperations:LN,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:IN(null),allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:jN,run_if:null,connector:void 0,config:{input_fields:{name:{alias:``}},output_fields:{first_name:{alias:``,enabled:!0},last_name:{alias:``,enabled:!0}}}}},VN=`person:personalemail:profileurl:waterfall@1`,HN=_(`profile_url`),UN=_(`personal_email`),WN=_(`alternate_personal_emails`),GN=[`leadmagic`,`mixrank`,`wiza`,`aviato`,`surfe`,`forager`],KN=[{provider:`wiza`},{provider:`aviato`},{provider:`mixrank`},{provider:`forager`},{provider:`leadmagic`}],qN=r.object({pipe_id:r.literal(VN),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:GN,defaultProviders:KN}),input_fields:L(r.object({[HN.name]:T({fieldName:HN.name})})),output_fields:I(r.object({[UN.name]:D({fieldName:UN.name}),[WN.name]:D({fieldName:WN.name})}))}).optional()}),JN=e=>B(K(HN,e)),YN={"person-personalemail-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-mixrank":{provider:`mixrank`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-aviato":{provider:`aviato`,allowManagedConnection:!0,credits:{default:3},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:3},mode:`onSuccess`},"person-personalemail-profileurl-waterfall-v1-forager":{provider:`forager`,allowManagedConnection:!0,credits:{default:4},mode:`onSuccess`}},XN=class extends V{pipeId=VN;payload;payloadSchema=qN;billableOperations=YN;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return JN(this.payload.config)}getRawOutputFields(){return{[UN.name]:this.catalogOutput(UN,{isPrimaryOutput:!0}),[WN.name]:this.catalogOutput(WN)}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_personal_email_finder`,mixrank:`mixrank-person-match`,wiza:`wiza_individual_reveal`,aviato:`aviato_person_contact`,surfe:`surfe_people_enrich`,forager:`forager_person_contacts_lookup`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},ZN=qN,QN={pipeId:VN,basePipe:W(VN),allowedUserConnectionProviders:GN,managedProviders:GN,deprecatedProviders:[],label:`Personal email from LinkedIn`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find the personal email address of a prospect by using a professional profile URL as input.`,tags:[H.EMAIL,H.PERSONAL_EMAIL],keywords:[`gmail`,`private`,`consumer`,`contact`],docPath:G(VN),billableOperations:YN,defaultInputRequirement:JN(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:VN,connector:null,run_if:null,config:{providers:KN,input_fields:{profile_url:{alias:``}},output_fields:{personal_email:{alias:``,enabled:!0},alternate_personal_emails:{alias:``,enabled:!1}}}}},$N=_(`profile_url`),eP=_(`post_list_string`),tP=_(`crustdata_post_list`),nP=`person:posts:content:crustdata@1`,rP=r.object({pipe_id:r.literal(nP),run_if:b(),connector:C(),config:r.object({limit:_d({path:`config.limit`,groupPath:`config.general`,max:100,min:1,sectionKey:`general`,info:``,label:`Limit`,legend:`Max. 100`}),input_fields:L(r.object({[$N.name]:T({fieldName:$N.name})})),output_fields:I(r.object({[eP.name]:D({fieldName:eP.name}),[tP.name]:D({fieldName:tP.name})}))}).optional()}),iP=e=>B(K($N,e)),aP={"person-posts-crustdata-v1-crustdata":{allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`,note:`1.5 credits per post. Posts are fetched in increments of 5.`,provider:`crustdata`}},oP=class extends V{pipeId=nP;payload;payloadSchema=rP;billableOperations=aP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`crustdata`]}estimateBillableOperations(e){return U(e,`person-posts-crustdata-v1-crustdata`)}getInputRequirement(){return iP(this.payload.config)}getRawOutputFields(){return{[eP.name]:this.catalogOutput(eP),[tP.name]:this.catalogOutput(tP)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitRatio:1,rateLimitOperation:`crustdata_realtime_post_fetch`,allowManagedConnection:!0}]}},sP=rP,cP={pipeId:nP,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(nP),label:`LinkedIn posts`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find list of recent LinkedIn posts.`,tags:[H.LINKEDIN],keywords:[`activity`,`content`,`social`,`updates`,`engagement`,`feed`],docPath:G(nP),billableOperations:aP,allowedUserConnectionProviders:[`crustdata`],managedProviders:[`crustdata`],deprecatedProviders:[],defaultInputRequirement:iP(null),defaultPayload:{pipe_id:nP,connector:null,run_if:null,config:{limit:5,input_fields:{profile_url:{alias:``}},output_fields:{crustdata_post_list:{alias:``,enabled:!0},post_list_string:{alias:``,enabled:!0}}}}},lP=`person:profile:waterfall@2`,uP=_(`person_profile_match`),dP=_(`primary_job_title`),fP=_(`primary_seniority`),pP=_(`primary_company_domain`),mP=_(`profile_url`),hP=[`crustdata`,`amplemarket`,`prospeo`],gP=[{provider:`crustdata`},{provider:`amplemarket`},{provider:`prospeo`}],_P=r.object({pipe_id:r.literal(lP),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,availableProviders:hP,defaultProviders:gP}),input_fields:L(r.object({[mP.name]:T({fieldName:mP.name})})),output_fields:I(r.object({[uP.name]:D({fieldName:uP.name}),[dP.name]:D({fieldName:dP.name}),[fP.name]:D({fieldName:fP.name}),[pP.name]:D({fieldName:pP.name})}))}).optional()}),vP=e=>B(K(mP,e)),yP={"person-profile-waterfall-v2-crustdata":{provider:`crustdata`,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`,allowManagedConnection:!0},"person-profile-waterfall-v2-amplemarket":{provider:`amplemarket`,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`,allowManagedConnection:!0},"person-profile-waterfall-v2-prospeo":{provider:`prospeo`,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`,allowManagedConnection:!0}},bP=class extends V{pipeId=lP;payload;payloadSchema=_P;billableOperations=yP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return vP(this.payload.config)}getRawOutputFields(){return{[uP.name]:this.catalogOutput(uP,{isPrimaryOutput:!0}),[dP.name]:this.catalogOutput(dP),[fP.name]:this.catalogOutput(fP),[pP.name]:this.catalogOutput(pP)}}getConnectionsRequirements(){let e={crustdata:`crustdata_realtime_person_enrich`,amplemarket:`amplemarket_people_find`,prospeo:`prospeo_social_profile_lookup`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},xP=_P,SP={pipeId:lP,basePipe:W(lP),label:`Full LinkedIn profile`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find a standardized JSON representation of a LinkedIn profile.`,docPath:G(lP),tags:[H.LINKEDIN,H.WATERFALL],keywords:[`enrich`,`enrichment`,`json`,`scrape`,`bio`,`experience`,`education`],managedProviders:hP,deprecatedProviders:[],allowedUserConnectionProviders:hP,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:yP,defaultInputRequirement:vP(null),defaultPayload:{pipe_id:lP,run_if:null,connector:null,config:{providers:gP,input_fields:{profile_url:{alias:``}},output_fields:{person_profile_match:{alias:``,enabled:!0},primary_job_title:{alias:``,enabled:!0},primary_seniority:{alias:``,enabled:!0},primary_company_domain:{alias:``,enabled:!0}}}}},CP=_(`work_email`),wP=_(`crustdata_person_match`),TP=_(`crustdata_profile_match_score`),EP=`person:profile:workemail:crustdata@1`,DP=r.object({pipe_id:r.literal(EP),run_if:b(),connector:C(),config:r.object({input_fields:L(r.object({[CP.name]:T({fieldName:CP.name})})),output_fields:I(r.object({[wP.name]:D({fieldName:wP.name}),[TP.name]:D({fieldName:TP.name})}))}).optional()}),OP=e=>B(K(CP,e)),kP={"person-profile-workemail-crustdata-v1-crustdata":{allowManagedConnection:!0,credits:{default:5},mode:`onSuccess`,provider:`crustdata`}},AP=class extends V{pipeId=EP;payload;payloadSchema=DP;billableOperations=kP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`crustdata`]}estimateBillableOperations(e){return U(e,`person-profile-workemail-crustdata-v1-crustdata`)}getInputRequirement(){return OP(this.payload.config)}getRawOutputFields(){return{[wP.name]:this.catalogOutput(wP),[TP.name]:this.catalogOutput(TP)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitRatio:1,rateLimitOperation:`crustdata_realtime_person_enrich`,allowManagedConnection:!0}]}},jP=DP,MP={pipeId:EP,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(EP),label:`Profile from work email`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find person profile by their work email address.`,tags:[H.EMAIL,H.PEOPLE_PROFILES],keywords:[`enrich`,`enrichment`,`reverse lookup`,`linkedin`,`person`],docPath:G(EP),billableOperations:kP,allowedUserConnectionProviders:[`crustdata`],managedProviders:[`crustdata`],deprecatedProviders:[],defaultInputRequirement:OP(null),defaultPayload:{pipe_id:EP,connector:null,run_if:null,config:{input_fields:{work_email:{alias:``}},output_fields:{crustdata_person_match:{alias:``,enabled:!0},crustdata_profile_match_score:{alias:``,enabled:!0}}}}},NP=`person:profileurl:email:waterfall@1`,PP=_(`email`),FP=_(`work_email`),IP=_(`profile_url`),LP=[`leadmagic`,`aviato`],RP=[{provider:`leadmagic`},{provider:`aviato`}],zP=r.object({pipe_id:r.literal(NP),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:RP,availableProviders:LP}),input_fields:L(r.object({[PP.name]:T({fieldName:PP.name}),[FP.name]:T({fieldName:FP.name})})),output_fields:I(r.object({[IP.name]:D({fieldName:IP.name})}))}).optional()}),BP=e=>kf(K(PP,e),K(FP,e)),VP={"person-profileurl-email-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:3.5},mode:`onSuccess`},"person-profileurl-email-waterfall-v1-aviato":{provider:`aviato`,allowManagedConnection:!0,credits:{default:3.5},mode:`onSuccess`}},HP=class extends V{pipeId=NP;payload;payloadSchema=zP;billableOperations=VP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return BP(this.payload.config)}getRawOutputFields(){return{[IP.name]:this.catalogOutput(IP,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_email_to_b2b_profile`,aviato:`aviato_person_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},UP=zP,WP={pipeId:NP,basePipe:W(NP),managedProviders:LP,deprecatedProviders:[],allowedUserConnectionProviders:LP,label:`LinkedIn URL from email`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find the URL for a prospect's LinkedIn profile from their personal or professional email address.`,guide:`Reverse email โ LinkedIn profile URL, nothing else. Unless the user specifically asks for a URL-only lookup, FAVOR person:identity:email:waterfall@2: same email input, also resolves profile_url, plus the full standardized person_profile_match JSON profile (employment and education history, seniority, location) in one call โ the richer grounding almost every downstream flow (profile enrichment, CRM match) needs anyway. Reach for THIS pipe when the profile URL is genuinely the only thing wanted.`,tags:[H.LINKEDIN],keywords:[`profile`,`reverse lookup`,`social`,`person`],docPath:G(NP),billableOperations:VP,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:BP(null),defaultPayload:{pipe_id:NP,run_if:null,connector:null,config:{providers:RP,input_fields:{email:{alias:``},work_email:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0}}}}},GP=`person:profileurl:name@1`,KP=_(`name`),qP=_(`company_name`),JP=_(`location_hint`),YP=_(`profile_url`),XP=r.object({pipe_id:r.literal(GP),connector:Ru(),run_if:b(),config:r.object({input_fields:L(r.object({[KP.name]:T({fieldName:KP.name}),[qP.name]:T({fieldName:qP.name}),[JP.name]:T({fieldName:JP.name})})),output_fields:I(r.object({[YP.name]:D({fieldName:YP.name})}))}).optional()}),ZP=e=>Of(B(K(KP,e)),B(K(qP,e)),Af(K(JP,e))),QP={"person-profileurl-name-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:.6},mode:`always`}},$P=class extends V{pipeId=GP;payload;payloadSchema=XP;billableOperations=QP;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`person-profileurl-name-v1-pipe0`)}getInputRequirement(){return ZP(this.payload.config)}getRawOutputFields(){return{[YP.name]:this.catalogOutput(YP)}}getConnectionsRequirements(){return[{provider:`serper`,rateLimitRatio:1,rateLimitOperation:`serper_search`,allowManagedConnection:!0}]}},eF=XP,tF={pipeId:GP,basePipe:W(GP),label:`LinkedIn URL from name`,executionMode:`single`,categories:[`people_data`],lifecycle:null,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],description:`Find the LinkedIn profile URL by using the prospect's name as input.`,docPath:G(GP),tags:[H.LINKEDIN],keywords:[`profile`,`social`,`lookup`,`person`],billableOperations:QP,defaultInputRequirement:ZP(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:GP,connector:void 0,run_if:null,config:{input_fields:{company_name:{alias:``},location_hint:{alias:``},name:{alias:``}},output_fields:{profile_url:{alias:``,enabled:!0}}}}},nF=`person:workemail:profileurl:waterfall@1`,rF=_(`profile_url`),iF=_(`work_email`),aF=_(`email_validation_status`),oF=[`hunter`,`amplemarket`,`wiza`,`findymail`,`leadmagic`,`crustdata`,`surfe`],sF=[`findymail`],cF=[{provider:`wiza`},{provider:`amplemarket`},{provider:`crustdata`},{provider:`surfe`}],lF=r.object({pipe_id:r.literal(nF),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:oF,defaultProviders:cF,deprecatedProviders:sF,sectionKey:`general`}),allow_catch_all_emails:ud({path:`config.allow_catch_all_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:``,label:`Allow catch-all emails`}),allow_risky_emails:ud({path:`config.allow_risky_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`Higher chance of bouncing or being marked as spam.`,guide:`Risky emails carry a higher chance of bouncing or being marked as spam.`,label:`Allow risky emails`}),input_fields:L(r.object({[rF.name]:T({fieldName:rF.name})})),output_fields:I(r.object({[iF.name]:D({fieldName:iF.name}),[aF.name]:D({fieldName:aF.name})}))}).optional()}),uF=e=>B(K(rF,e)),dF={"person-workemail-profileurl-waterfall-v1-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:2,level1:{credits:.7,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-crustdata":{provider:`crustdata`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:2.5,level1:{credits:1.5,weight:1}},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:2.5},mode:`onSuccess`},"person-workemail-profileurl-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:1.5,level1:{credits:1,weight:2}},mode:`onSuccess`}},fF=class extends V{pipeId=nF;payload;payloadSchema=lF;billableOperations=dF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return uF(this.payload.config)}getRawOutputFields(){return{[iF.name]:this.catalogOutput(iF,{isPrimaryOutput:!0}),[aF.name]:this.catalogOutput(aF,{isPrimaryOutput:!1})}}getConnectionsRequirements(){let e={wiza:`wiza_individual_reveal`,leadmagic:`leadmagic_email_b2b_lookup`,hunter:`prospeo_email_lookup`,amplemarket:`amplemarket_people_find`,findymail:`findymail_email_b2b_lookup`,crustdata:`crustdata_realtime_person_enrich`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},pF=lF,mF={pipeId:nF,basePipe:W(nF),label:`Work email from LinkedIn URL`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find work email addresses from B2B profile.`,tags:[H.EMAIL,H.WORK_EMAIL,H.WATERFALL],keywords:[`business email`,`b2b`,`corporate`,`contact`],docPath:G(nF),managedProviders:oF,allowedUserConnectionProviders:oF,deprecatedProviders:sF,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:dF,defaultInputRequirement:uF(null),defaultPayload:{pipe_id:nF,connector:null,run_if:null,config:{providers:cF,allow_catch_all_emails:!0,allow_risky_emails:!0,input_fields:{profile_url:{alias:``}},output_fields:{work_email:{alias:``,enabled:!0},email_validation_status:{alias:``,enabled:!1}}}}},hF=`person:workemail:waterfall@1`,gF=_(`name`),_F=_(`company_domain`),vF=_(`company_name`),yF=_(`work_email`),bF=_(`email_validation_status`),xF=[`leadmagic`,`wiza`,`prospeo`,`amplemarket`,`hunter`,`icypeas`,`findymail`],SF=[`icypeas`,`findymail`],CF=[{provider:`leadmagic`},{provider:`wiza`},{provider:`prospeo`},{provider:`amplemarket`},{provider:`hunter`}],wF={"person-workemail-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:.5,level1:{credits:.25,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-icypeas":{provider:`icypeas`,allowManagedConnection:!0,credits:{default:.5,level1:{credits:.25,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-wiza":{provider:`wiza`,allowManagedConnection:!0,credits:{default:2,level1:{credits:1,weight:2}},mode:`onSuccess`},"person-workemail-waterfall-v1-prospeo":{provider:`prospeo`,allowManagedConnection:!0,credits:{default:1,level1:{credits:.5,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-findymail":{provider:`findymail`,allowManagedConnection:!0,credits:{default:1.5,level1:{credits:.75,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-hunter":{provider:`hunter`,allowManagedConnection:!0,credits:{default:1.3,level1:{credits:.75,weight:1}},mode:`onSuccess`},"person-workemail-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:3,level1:{credits:2,weight:1}},mode:`onSuccess`}},TF=r.object({pipe_id:r.literal(hF),connector:C(),run_if:b(),config:r.object({providers:E({availableProviders:xF,defaultProviders:CF,deprecatedProviders:SF,sectionKey:`general`,providerCredits:zf(wF,xF)}),allow_catch_all_emails:ud({path:`config.allow_catch_all_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`Catch-alls appear valid but remain undeliverable-risk.`,guide:`Catch-all emails appear valid but remain undeliverable-risk.`,label:`Allow catch-all emails`}),allow_risky_emails:ud({path:`config.allow_risky_emails`,defaultValue:!0,groupPath:`config.general`,sectionKey:`general`,info:`DNS configuration and spam reputation may flag emails as high-risk.`,guide:`DNS configuration and spam reputation may flag an email as high-risk.`,label:`Allow risky emails`}),input_fields:L(r.object({[gF.name]:T({fieldName:gF.name}),[_F.name]:T({fieldName:_F.name}),[vF.name]:T({fieldName:vF.name})})),output_fields:I(r.object({[yF.name]:D({fieldName:yF.name}),[bF.name]:D({fieldName:bF.name})}))}).optional()}),EF=e=>Of(B(K(gF,e)),B(K(_F,e))),DF=class extends V{pipeId=hF;payload;payloadSchema=TF;billableOperations=wF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return EF(this.payload.config)}getRawOutputFields(){return{[yF.name]:this.catalogOutput(yF,{isPrimaryOutput:!0}),[bF.name]:this.catalogOutput(bF,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_email_lookup`,wiza:`wiza_individual_reveal`,prospeo:`prospeo_email_lookup`,icypeas:`icypeas_email_lookup`,findymail:`findymail_email_lookup`,hunter:`hunter_email_finder`,amplemarket:`amplemarket_people_find`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},OF=TF,kF={pipeId:hF,basePipe:W(hF),label:`Work email from name`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find work email addresses in a waterfall motion.`,tags:[H.EMAIL,H.WORK_EMAIL,H.WATERFALL],keywords:[`business email`,`b2b`,`corporate`,`contact`],docPath:G(hF),managedProviders:xF,deprecatedProviders:SF,allowedUserConnectionProviders:xF,inputFieldMode:`static`,outputFieldMode:`static`,billableOperations:wF,defaultInputRequirement:EF(null),defaultPayload:{pipe_id:hF,connector:null,run_if:null,config:{providers:CF,allow_catch_all_emails:!0,allow_risky_emails:!0,input_fields:{company_name:{alias:``},company_domain:{alias:``},name:{alias:``}},output_fields:{work_email:{alias:``,enabled:!0},email_validation_status:{alias:``,enabled:!1}}}}},AF=`post:create:x@1`,jF=_(`x_post_id`),MF=_(`x_post_url`),NF=/https?:\/\/\S+|\b[\w-]+(\.[\w-]+)*\.[a-z]{2,}\/\S*/i,PF={"post-create-x-v1-x":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:1},note:`X bills $0.015 per plain post to pipe0's app; never charged for a post that didn't go out.`},"post-create-x-v1-x-link":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:10},note:`X bills posts containing a link at $0.20 (13x a plain post). The runner picks this op when X's create response shows the text rewritten with a t.co link โ X's own linkifier verdict, not a local guess.`}},FF=r.object({pipe_id:r.literal(AF),connector:S(),run_if:b(),config:r.object({text:x({sectionKey:`general`,groupPath:`config.general`,path:`config.text`,label:`Post text`,info:"Standard accounts are capped at 280 characters by X (URLs count as 23); over-limit posts fail per row. Posts containing a link bill 10 credits instead of 1. Type `/` to insert a field, secret, or constant reference.",guide:`Standard X accounts cap posts at 280 characters (URLs count as 23) โ over-limit rows fail. A link anywhere in the rendered text bills 10 credits instead of 1.`,placeholder:`We just shipped {{ feature_name }} โ โฆ`,inputType:`text`,minLength:1,maxLength:25e3,expectedTagType:`string`,expectedTagFormat:`text`,multiline:!0}),output_fields:I(r.object({[jF.name]:D({fieldName:jF.name}),[MF.name]:D({fieldName:MF.name})}))})}),IF=class extends V{pipeId=AF;payload;payloadSchema=FF;billableOperations=PF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`x`]}estimateBillableOperations(e){return[{billableOperation:NF.test(this.payload.config.text)?`post-create-x-v1-x-link`:`post-create-x-v1-x`,quantity:e.count}]}getTemplatedFields(){return[this.payload.config.text]}getInputRequirement(){return pm(this.getTemplatedFields())}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[jF.name]:this.catalogOutput(jF),[MF.name]:this.catalogOutput(MF)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitRatio:1,rateLimitOperation:`x_post_write`,allowManagedConnection:!1}]}},LF=FF,RF={pipeId:AF,basePipe:W(AF),label:`Post on X`,executionMode:`single`,categories:[`actions`],lifecycle:null,description:`Publish a post from your connected X (Twitter) account.`,guide:"Publishes a NEW post to the connected account's own timeline (BYO connection required). The text is a templated field โ reference upstream fields with `{{ field_name }}`. 1 credit per post, 10 credits when the text contains a link (X bills link posts at 13x). Rerunning a completed cell POSTS AGAIN โ this pipe has side effects. X policy: posting your own (scheduled) content is fine; never post identical content across multiple accounts. Replies are deliberately NOT supported โ X prohibits unsolicited automated replies and requires prior approval for AI-generated ones, so do not try to build reply automations with this pipe.",tags:[H.X,H.NEW],keywords:[`tweet`,`twitter`,`publish`,`share`,`social`,`announce`],docPath:G(AF),hasSideEffects:!0,billableOperations:PF,inputFieldMode:`config`,outputFieldMode:`static`,allowedUserConnectionProviders:[`x`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:null,defaultPayload:{pipe_id:AF,connector:{strategy:`first`,connections:[]},run_if:null,config:{text:``,output_fields:{x_post_id:{alias:``,enabled:!0},x_post_url:{alias:``,enabled:!0}}}}},zF=_(`x_username`),BF=_(`post_list_string`),VF=_(`x_post_list`),HF=`profile:posts:x@1`,UF=r.object({pipe_id:r.literal(HF),run_if:b(),connector:S(),config:r.object({limit:_d({path:`config.limit`,groupPath:`config.general`,max:35,min:5,sectionKey:`general`,info:``,label:`Limit`,legend:`5 - 35`}),input_fields:L(r.object({[zF.name]:T({fieldName:zF.name})})),output_fields:I(r.object({[BF.name]:D({fieldName:BF.name}),[VF.name]:D({fieldName:VF.name})}))}).optional()}),WF=e=>B(K(zF,e)),GF={"profile-posts-x-v1-x":{allowManagedConnection:!1,provider:`x`,credits:null,mode:`onSuccess`,userConnectionCredits:{default:.25},note:`0.25 credits per post fetched (X bills $0.005/post plus a $0.01 username lookup to pipe0's app). Billed once per fetched post.`}},KF=class extends V{pipeId=HF;payload;payloadSchema=UF;billableOperations=GF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`x`]}estimateBillableOperations(e){let t=this.payload.config?.limit??10;return[{billableOperation:`profile-posts-x-v1-x`,quantity:e.count*t}]}getInputRequirement(){return WF(this.payload.config)}getRawOutputFields(){return{[BF.name]:this.catalogOutput(BF),[VF.name]:this.catalogOutput(VF)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitRatio:2,rateLimitOperation:`x_user_timeline_read`,allowManagedConnection:!1}]}},qF=UF,JF={pipeId:HF,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(HF),label:`X posts`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Find the recent X (Twitter) posts of an account by handle.`,guide:`Fetches up to 35 recent posts for the x_username input (a bare handle; a leading @ or an x.com profile URL is normalized). Runs on the user's connected X account at 0.25 credits per fetched post. x_post_list rows are the same x_post_match objects the X post search returns โ linked_urls carries expanded link targets (post text only shows t.co addresses) and author.user_id is the rename-stable account key; post_list_string is just the texts for prompting.`,tags:[H.X,H.NEW],keywords:[`tweets`,`twitter`,`activity`,`content`,`timeline`,`feed`],docPath:G(HF),billableOperations:GF,allowedUserConnectionProviders:[`x`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:WF(null),defaultPayload:{pipe_id:HF,connector:{strategy:`first`,connections:[]},run_if:null,config:{limit:10,input_fields:{x_username:{alias:``}},output_fields:{x_post_list:{alias:``,enabled:!0},post_list_string:{alias:``,enabled:!0}}}}},YF=`prompt:run@1`,XF=`prompt-run-v1`,ZF=jl(XF),QF=r.object({pipe_id:r.literal(YF),connector:C(),run_if:b(),config:r.object({prompt:Fu({sectionKey:`general`,path:`config.prompt`,placeholder:X(`prompt`),groupPath:`config.prompt`,supportedTags:[`input`,`output`]}),model:hd({sectionKey:`general`,label:`Model`,path:`config.model`,groupPath:`config.prompt`,billableOperations:ZF,defaultValue:xl})})}),$F=class extends V{pipeId=YF;payload;payloadSchema=QF;billableOperations=ZF;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return wl(this.payload.config.model)}estimateBillableOperations(e){return Nl(e,{model:this.payload.config.model,prefix:XF,inputTokens:600,outputTokens:800})}getInputRequirement(){return pm([this.payload.config.prompt.template])}getSecretRequirements(){return J([this.payload.config.prompt.template])}getConstantRequirements(){return mm([this.payload.config.prompt.template])}getRawOutputFields(){let e=this.payload.config.prompt.template,t=this.payload.config.prompt.json_schemas??{},n={},r;try{r=Vc(e)}catch{return n}for(let e of r.outputs){let r=e.type;if(r===`json`){let i=e.schemaRef?t[e.schemaRef]:void 0;n[e.name]={enabled:!0,name:e.name,label:e.name,resolvedName:e.name,type:r,description:e.description,jsonMeta:{zodSchema:i,exampleValue:null},format:null,isCatalogFIeld:!1,isPrimaryOutput:!1}}else n[e.name]={enabled:!0,name:e.name,label:e.name,resolvedName:e.name,type:r,description:e.description,jsonMeta:null,format:e.format??null,isCatalogFIeld:!1,isPrimaryOutput:!1}}return n}getConnectionsRequirements(){return Tl(this.payload.config.model)}},eI=QF,tI={pipeId:YF,inputFieldMode:`config`,outputFieldMode:`config`,basePipe:W(YF),label:`AI prompt`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,description:`Executes configurable AI prompts with structured output fields.`,guide:`General-purpose AI prompt runner. Inputs and outputs are fully dynamic โ defined by the tags in the prompt template. For extracting a value from a JSON / known-schema field, do NOT use this โ use the deterministic json:extract:multi@1 (JSONata) instead: it's cheaper, reproducible, and runs on a schedule with no model. Reserve prompt:run@1 for genuine judgment or free-text generation (classify, summarize, rewrite).`,tags:[H.AI],keywords:[`llm`,`gpt`,`chatgpt`,`openai`,`generate`,`classify`,`extract`],docPath:G(YF),defaultInputRequirement:null,billableOperations:ZF,allowedUserConnectionProviders:El(),managedProviders:El(),deprecatedProviders:[],defaultPayload:{pipe_id:YF,connector:null,run_if:null,config:{model:xl,prompt:{template:``,json_schemas:{}}}}},nI=_(`salesforce_record_id`),rI=_(`salesforce_record_created`),iI=_(`salesforce_record_match`),aI=`record:assert:salesforce@1`,oI=r.object({pipe_id:r.literal(aI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can create/update.`,guide:`Standard and custom objects the connected user can create/update.`,enabledIf:v(`salesforce`),optionsDef:rp({updateableOnly:!0})}),external_id_field:bd({sectionKey:`general`,required:!0,label:`External ID field`,groupPath:`config.general`,path:`config.external_id_field`,info:`The object's External-ID field anchoring the upsert (fields marked External ID in Setup). If the picker is empty, the object has none โ create one in Setup; it is the ecosystem-standard idempotency anchor.`,guide:`Only fields marked External ID in Setup qualify. An object with none needs one created in Setup โ the ecosystem-standard idempotency anchor.`,enabledIf:v(`salesforce`),optionsDef:ip}),external_id_value:x({sectionKey:`general`,label:`External ID value`,inputType:`text`,expectedTagType:`string`,expectedTagFormat:`text`,groupPath:`config.general`,path:`config.external_id_value`,placeholder:`{{ company_domain }}`,info:"The value to match/create on โ a literal or a `{{ column }}` reference.",guide:"The value to match/create on โ a literal or a `{{ field }}` tag."}),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Field values`,info:`Field = the Salesforce API name. Include every field required at create (e.g. Name on Account, LastName+Company on Lead) โ a create with missing required fields fails and names them. Blank values are skipped, never cleared.`,guide:`Keys are Salesforce field API names. Include every field required at create โ e.g. Name on Account, LastName+Company on Lead.`,keyLabel:`Field API name`,valueLabel:`Value`,keyPlaceholder:`Name`,valuePlaceholder:`{{ company_name }}`,maxKeys:50}),bypass_duplicate_alerts:ud({sectionKey:`general`,defaultValue:!1,label:`Bypass duplicate alerts`,groupPath:`config.general`,path:`config.bypass_duplicate_alerts`,info:`Acknowledge ALERT-mode duplicate rules and save anyway. BLOCK-mode rules can never be bypassed โ those errors list the matching records.`}),output_fields:I(r.object({[nI.name]:D({fieldName:nI.name}),[rI.name]:D({fieldName:rI.name}),[iI.name]:D({fieldName:iI.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.values??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`values`,n]});if(t.includes(`{{`)){r("Field name must be a literal API name (no `{{ }}` templating).");continue}if(t.includes(`.`)){r(`Invalid field name "${t}" โ dotted paths cannot be written; set the lookup ID field (e.g. AccountId) instead.`);continue}/^[a-zA-Z][a-zA-Z0-9_]*$/.test(t)||r(`Invalid Salesforce field name "${t}" โ API names are letters, digits, and underscores (custom fields end in __c).`)}})}),sI={"record-assert-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},cI=class extends V{pipeId=aI;payload;payloadSchema=oI;billableOperations=sI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-assert-salesforce-v1-salesforce`)}getTemplates(){return[this.payload.config.external_id_value,...Object.values(this.payload.config.values??{})].filter(e=>!!e)}getInputRequirement(){return Of(...pp(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[nI.name]:this.catalogOutput(nI),[rI.name]:this.catalogOutput(rI),[iI.name]:this.catalogOutput(iI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Account`],writableOnly:!0})}},lI=oI,uI={pipeId:aI,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(aI),label:`Salesforce assert record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:"Create-or-update (upsert) a Salesforce record anchored on an External ID field โ Salesforce's native idempotent write. One matching record updates, none creates; `created` says which happened.",tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`upsert`,`create`,`write`,`sync`,`idempotent`],docPath:G(aI),guide:"The upsert is anchored on the External-ID field: no match creates, one match updates, MULTIPLE matches fail with the record IDs and write nothing (resolve duplicates or use record:update). On the create path Salesforce enforces required fields (the error names them) and duplicate rules may block the save (`bypass_duplicate_alerts` acknowledges ALERT-mode rules only). Call get_provider_context for the object's writable fields; blanks skip, never clear. `salesforce_record_created` = true means a new record โ the fresh record rides the output JSON.",billableOperations:sI,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Of(),defaultPayload:{pipe_id:aI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Account`,external_id_field:``,external_id_value:`{{ company_domain }}`,values:{},bypass_duplicate_alerts:!1,output_fields:{salesforce_record_id:{alias:``,enabled:!0},salesforce_record_created:{alias:``,enabled:!0},salesforce_record_match:{alias:``,enabled:!0}}}}},dI=_(`attio_record_id`),fI=_(`attio_record_found`),pI=_(`attio_record_match`),mI=`record:lookup:attio@1`,hI=r.object({pipe_id:r.literal(mI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),input_fields:L(r.object({[dI.name]:T({fieldName:dI.name})})),output_fields:I(r.object({[fI.name]:D({fieldName:fI.name}),[pI.name]:D({fieldName:pI.name})}))})}),gI=e=>B(K(dI,e)),_I={"record-lookup-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},vI=class extends V{pipeId=mI;payload;payloadSchema=hI;billableOperations=_I;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-lookup-attio-v1-attio`)}getInputRequirement(){return gI(this.payload.config)}getRawOutputFields(){return{[fI.name]:this.catalogOutput(fI),[pI.name]:this.catalogOutput(pI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_generic`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`})}},yI=hI,bI={pipeId:mI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(mI),label:`Attio lookup record`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Fetch one Attio record of any object (custom objects included) by its record ID โ the full record with every attribute. A missing record completes with found = false.`,tags:[H.NEW],keywords:[`crm`,`get`,`fetch`,`by id`,`custom object`,`read`],docPath:G(mI),guide:"Map the record's Attio ID into the `attio_record_id` input โ typically chained from a match pipe or search that outputs it. The output JSON carries ALL of the record's attribute values under `values` (id and deep-link url beside them) โ extract specific attributes with json:extract downstream. found = false is a successful result. Works on every object in the workspace, custom objects included.",billableOperations:_I,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:gI(null),defaultPayload:{pipe_id:mI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,input_fields:{attio_record_id:{alias:``}},output_fields:{attio_record_found:{alias:``,enabled:!0},attio_record_match:{alias:``,enabled:!0}}}}},xI=_(`salesforce_record_id`),SI=_(`salesforce_record_found`),CI=_(`salesforce_record_match`),wI=`record:lookup:salesforce@1`,TI=r.object({pipe_id:r.literal(wI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can query.`,guide:`Standard and custom objects the connected user can query.`,enabledIf:v(`salesforce`),optionsDef:rp()}),input_fields:L(r.object({[xI.name]:T({fieldName:xI.name})})),output_fields:I(r.object({[SI.name]:D({fieldName:SI.name}),[CI.name]:D({fieldName:CI.name})}))})}),EI=e=>B(K(xI,e)),DI={"record-lookup-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},OI=class extends V{pipeId=wI;payload;payloadSchema=TI;billableOperations=DI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-lookup-salesforce-v1-salesforce`)}getInputRequirement(){return EI(this.payload.config)}getRawOutputFields(){return{[SI.name]:this.catalogOutput(SI),[CI.name]:this.catalogOutput(CI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Contact`]})}},kI=TI,AI={pipeId:wI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(wI),label:`Salesforce record lookup`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Fetch a full Salesforce record (any standard or custom object) by its record ID โ every field visible to the connected user. A deleted or missing record completes with found = false.`,tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`read`,`fetch`,`get`,`record`,`custom object`],docPath:G(wI),guide:"The record-ID input consumes `salesforce_record_id`, which every Salesforce surface emits โ chain from a match pipe or search (alias it to point at a differently named column). Returns ALL fields the connected user can see, nested under `record` in the output JSON โ fields hidden by field-level security are silently absent. found = false (deleted/missing id) is a successful result.",billableOperations:DI,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:EI(null),defaultPayload:{pipe_id:wI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Contact`,input_fields:{salesforce_record_id:{alias:``}},output_fields:{salesforce_record_found:{alias:``,enabled:!0},salesforce_record_match:{alias:``,enabled:!0}}}}},jI=_(`attio_record_found`),MI=_(`attio_record_id`),NI=_(`attio_record_match`),PI=`record:match:attio@1`,FI=r.object({pipe_id:r.literal(PI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),matching_attribute:bd({sectionKey:`general`,required:!0,label:`Matching attribute`,groupPath:`config.general`,path:`config.matching_attribute`,info:`The object's UNIQUE attributes โ one value maps to at most one record. Deals have none by default (find them via deal:match instead); custom objects list their own unique attributes.`,guide:`Only the object's UNIQUE attributes qualify โ one value maps to at most one record. Deals have none by default; find deals via deal:match:attio@1 instead.`,enabledIf:v(`attio`),optionsDef:Vp(`object`)}),value:x({sectionKey:`general`,label:`Value`,inputType:`text`,expectedTagType:`string`,expectedTagFormat:`text`,groupPath:`config.general`,path:`config.value`,placeholder:`{{ serial_number }}`,info:"The value to match โ a literal or a `{{ column }}` reference. Matched exactly against the unique attribute.",guide:"The value to match โ a literal or a `{{ field }}` tag. Matched exactly against the unique attribute."}),output_fields:I(r.object({[jI.name]:D({fieldName:jI.name}),[MI.name]:D({fieldName:MI.name}),[NI.name]:D({fieldName:NI.name})}))})}),II=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},LI={"record-match-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},RI=class extends V{pipeId=PI;payload;payloadSchema=FI;billableOperations=LI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-match-attio-v1-attio`)}getTemplates(){return[this.payload.config.value].filter(e=>!!e)}getInputRequirement(){return Of(...II(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[jI.name]:this.catalogOutput(jI),[MI.name]:this.catalogOutput(MI),[NI.name]:this.catalogOutput(NI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_query`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`})}},zI=FI,BI={pipeId:PI,inputFieldMode:`config`,outputFieldMode:`static`,basePipe:W(PI),label:`Attio match record`,executionMode:`single`,categories:[`integrations`],lifecycle:null,description:`Find one record of ANY Attio object (custom objects included) by a unique attribute โ the generic find-by-key. A clean miss completes with found = false.`,tags:[H.NEW],keywords:[`crm`,`find`,`exists`,`unique`,`key`,`custom object`,`dedupe`],docPath:G(PI),guide:`Call get_provider_context first โ it lists each object's unique attributes (the legal match targets). For people/companies prefer the typed person:match/company:match pipes (identity defaults + richer envelopes); use this for custom objects, users/workspaces, or custom unique attributes. Matching is exact; found = false is a successful result. Chain attio_record_id into record:update:attio@1.`,billableOperations:LI,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:Of(),defaultPayload:{pipe_id:PI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,matching_attribute:`email_addresses`,value:`{{ email }}`,output_fields:{attio_record_found:{alias:``,enabled:!0},attio_record_id:{alias:``,enabled:!0},attio_record_match:{alias:``,enabled:!0}}}}},VI=_(`attio_record_id`),HI=_(`attio_update_result`),UI=`record:update:attio@1`,WI=r.object({pipe_id:r.literal(UI),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard objects plus this workspace's custom objects โ all objects work.`,guide:`Standard objects plus this workspace's custom objects โ all objects work.`,enabledIf:v(`attio`),optionsDef:Pp}),input_fields:L(r.object({[VI.name]:T({fieldName:VI.name})})),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Attribute values`,info:"Attribute = the Attio api_slug (e.g. `job_title`, custom attributes too). In the Value column, type `/` to insert a field reference. Select/status values are matched by TITLE (workspace-defined, never auto-created). Leave a value empty to skip that attribute for the row โ blank values are skipped, never cleared.",guide:"Keys are attribute api_slugs (e.g. `job_title`), custom attributes included.",keyLabel:`Attribute slug`,valueLabel:`Value`,keyPlaceholder:`job_title`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),multiselect_mode:md({sectionKey:`general`,required:!1,label:`Multiselect values`,groupPath:`config.general`,path:`config.multiselect_mode`,description:`Only affects multiselect attributes (e.g. domains, email_addresses, multi-selects): append adds the written value to the existing ones; overwrite replaces the full list.`,options:[{label:`Append`,value:`append`},{label:`Overwrite`,value:`overwrite`}]}).default(`append`),output_fields:I(r.object({[HI.name]:D({fieldName:HI.name})}))}).check(e=>{let t=e.value;for(let n of Object.keys(t.values??{})){let t=n.trim();if(!t)continue;let r=t=>e.issues.push({code:`custom`,input:n,message:t,path:[`values`,n]});if(t.includes(`{{`)){r("Attribute slug must be a literal api_slug (no `{{ }}` templating).");continue}/^[a-z][a-z0-9_]*$/.test(t)||r(`Invalid Attio attribute slug "${t}" โ api_slugs are lowercase letters, digits, and underscores.`)}})}),GI=e=>{let t=new Set;for(let n of e)if(n)try{let e=Vc(n);for(let n of Object.keys(e.inputs))t.add(n)}catch{}return[...t].map(e=>Af({name:e,resolvedName:e,label:e,description:``,type:t=>Xf(t,e)?.type||`string`,format:null}))},KI=e=>B(K(VI,e)),qI={"record-update-attio-v1-attio":{allowManagedConnection:!1,credits:null,mode:null,provider:`attio`}},JI=class extends V{pipeId=UI;payload;payloadSchema=WI;billableOperations=qI;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`attio`]}estimateBillableOperations(e){return U(e,`record-update-attio-v1-attio`)}getTemplates(){return Object.values(this.payload.config.values??{}).filter(e=>!!e)}getInputRequirement(){return Of(KI(this.payload.config),...GI(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[HI.name]:this.catalogOutput(HI)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitRatio:1,rateLimitOperation:`attio_write`,allowManagedConnection:!1}]}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`,writableOnly:!0})}},YI=WI,XI={pipeId:UI,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W(UI),label:`Attio update record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update an Attio record (standard or custom object) by its record ID, mapping columns to attributes. Blank values are skipped so un-enriched cells never erase CRM data.`,tags:[H.FIELDS],keywords:[`crm`,`write`,`sync`,`record`,`attribute`,`custom object`],docPath:G(UI),guide:"Resolve the record ID first (person:match/company:match/record:match โ Update by ID is the canonical recipe) and map it into the `attio_record_id` input. Call get_provider_context for the selected object to see WRITABLE attributes and select/status titles โ Attio rejects read-only (enriched) attributes and unknown option titles (workspace-defined, never auto-created). Value coercion is permissive: select/status by title, domains/emails as plain strings, workspace-member emails for actor references, record IDs for record references. 'Append vs overwrite' only affects multiselect attributes. Blank values are skipped, not cleared.",billableOperations:qI,allowedUserConnectionProviders:[`attio`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:KI(null),defaultPayload:{pipe_id:UI,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`people`,input_fields:{attio_record_id:{alias:``}},values:{},multiselect_mode:`append`,output_fields:{attio_update_result:{alias:``,enabled:!0}}}}},ZI=_(`salesforce_record_id`),QI=_(`salesforce_update_result`),$I=`record:update:salesforce@1`,eL=(e,t)=>{let n=e.value;for(let r of Object.keys(n[t]??{})){let n=r.trim();if(!n)continue;let i=n=>e.issues.push({code:`custom`,input:r,message:n,path:[t,r]});if(n.includes(`{{`)){i("Field name must be a literal API name (no `{{ }}` templating).");continue}if(n.includes(`.`)){i(`Invalid field name "${n}" โ dotted paths cannot be written; set the lookup ID field (e.g. AccountId) instead.`);continue}/^[a-zA-Z][a-zA-Z0-9_]*$/.test(n)||i(`Invalid Salesforce field name "${n}" โ API names are letters, digits, and underscores (custom fields end in __c).`)}},tL=r.object({pipe_id:r.literal($I),run_if:b(),connector:S(),config:r.object({object:bd({sectionKey:`general`,required:!0,label:`Object`,groupPath:`config.general`,path:`config.object`,info:`Standard and custom objects the connected user can update.`,guide:`Standard and custom objects the connected user can update.`,enabledIf:v(`salesforce`),optionsDef:rp({updateableOnly:!0})}),values:ad({sectionKey:`general`,groupPath:`config.general`,path:`config.values`,label:`Field values`,info:"Field = the Salesforce API name (`Title`, custom fields like `Lead_Score__c`). In the Value column, type `/` to insert a field reference. Blank values are skipped, never cleared. Restricted-picklist values must match existing entries exactly (case-sensitive); multi-select picklist writes REPLACE the whole set (semicolon-joined).",guide:"Keys are Salesforce field API names (`Title`, custom fields like `Lead_Score__c`). Blank values are skipped, never cleared. Multi-select picklist writes REPLACE the whole set (semicolon-joined).",keyLabel:`Field API name`,valueLabel:`Value`,keyPlaceholder:`Title`,valuePlaceholder:`{{ job_title }}`,maxKeys:50}),bypass_duplicate_alerts:ud({sectionKey:`general`,defaultValue:!1,label:`Bypass duplicate alerts`,groupPath:`config.general`,path:`config.bypass_duplicate_alerts`,info:`Acknowledge ALERT-mode duplicate rules and save anyway. BLOCK-mode rules can never be bypassed โ those errors list the matching records.`}),input_fields:L(r.object({[ZI.name]:T({fieldName:ZI.name})})),output_fields:I(r.object({[QI.name]:D({fieldName:QI.name})}))}).check(e=>eL(e,`values`))}),nL=e=>B(K(ZI,e)),rL={"record-update-salesforce-v1-salesforce":{allowManagedConnection:!1,credits:null,mode:null,provider:`salesforce`}},iL=class extends V{pipeId=$I;payload;payloadSchema=tL;billableOperations=rL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`salesforce`]}estimateBillableOperations(e){return U(e,`record-update-salesforce-v1-salesforce`)}getTemplates(){return Object.values(this.payload.config.values??{}).filter(e=>!!e)}getInputRequirement(){return Of(nL(this.payload.config),...pp(this.getTemplates()))}getSecretRequirements(){return J(this.getTemplates())}getRawOutputFields(){return{[QI.name]:this.catalogOutput(QI)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitRatio:1,rateLimitOperation:`salesforce_api`,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[fp(this.payload.config.object)||`Contact`],writableOnly:!0})}},aL=tL,oL={pipeId:$I,inputFieldMode:`static`,outputFieldMode:`static`,basePipe:W($I),label:`Salesforce update record`,executionMode:`single`,categories:[`actions`,`integrations`],lifecycle:null,description:`Update a Salesforce record (standard or custom object) by its record ID, mapping columns to fields. Blank values are skipped so un-enriched cells never erase CRM data; the output carries the fresh post-save record.`,tags:[H.FIELDS],keywords:[`crm`,`sfdc`,`write`,`sync`,`field`,`custom object`],docPath:G($I),guide:"The record-ID input consumes `salesforce_record_id`, which every Salesforce surface emits โ chain from a match pipe (alias it to point at a differently named column). Call get_provider_context for the object's WRITABLE fields and picklist values โ formula fields are read-only, restricted-picklist values are validated before the write (case-sensitive), and converted leads are read-only entirely (update the contact via ConvertedContactId instead). Duplicate rules may block the save; the error includes the admin's message and the matching record IDs, and `bypass_duplicate_alerts` acknowledges ALERT-mode rules only. Rows where every value renders blank skip the API call. Consume post-write values from the result JSON's `record` โ formulas and triggers may rewrite fields after save.",billableOperations:rL,allowedUserConnectionProviders:[`salesforce`],managedProviders:[],deprecatedProviders:[],defaultInputRequirement:nL(null),defaultPayload:{pipe_id:$I,connector:{strategy:`first`,connections:[]},run_if:null,config:{object:`Contact`,values:{},bypass_duplicate_alerts:!1,input_fields:{salesforce_record_id:{alias:``}},output_fields:{salesforce_update_result:{alias:``,enabled:!0}}}}},sL=`role:waterfall@1`,cL=_(`company_domain`),lL=_(`role_finder_person_match`),uL=[`amplemarket`,`leadmagic`,`surfe`],dL=[{provider:`amplemarket`},{provider:`surfe`},{provider:`leadmagic`}],fL=r.object({pipe_id:r.literal(sL),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:dL,availableProviders:uL}),titles:id({sectionKey:`general`,groupPath:`config.general`,label:`Titles`,path:`config.titles`,info:`Job titles to look for at the company.`,maxItems:3,minItems:1,suggestionsDef:g(`person.job_titles`),expectedTagType:`string`}),input_fields:L(r.object({[cL.name]:T({fieldName:cL.name})})),output_fields:I(r.object({[lL.name]:D({fieldName:lL.name})}))})}),pL=e=>kf(K(cL,e)),mL={"role-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"role-waterfall-v1-leadmagic":{provider:`leadmagic`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`},"role-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:1},mode:`onSuccess`}},hL=class extends V{pipeId=sL;payload;payloadSchema=fL;billableOperations=mL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return pL(this.payload.config)}getSecretRequirements(){return J(this.payload.config?.titles??[])}getConstantRequirements(){return mm(this.payload.config?.titles??[])}getRawOutputFields(){return{[lL.name]:this.catalogOutput(lL,{isPrimaryOutput:!0})}}getConnectionsRequirements(){let e={leadmagic:`leadmagic_role_finder`,amplemarket:`amplemarket_people_search`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},gL=fL,_L={pipeId:sL,basePipe:W(sL),managedProviders:uL,deprecatedProviders:[],allowedUserConnectionProviders:uL,label:`Role finder`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find one person at a company holding a given job title like "CEO" or "CFO".`,tags:[H.PEOPLE_PROFILES],keywords:[`job title`,`title`,`ceo`,`executive`,`decision maker`,`employee`],docPath:G(sL),billableOperations:mL,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:pL(null),defaultPayload:{pipe_id:sL,run_if:null,connector:null,config:{titles:[],providers:dL,input_fields:{company_domain:{alias:``}},output_fields:{role_finder_person_match:{alias:``,enabled:!0}}}}},vL=`roles:waterfall@1`,yL=_(`company_domain`),bL=_(`role_finder_matches`),xL=_(`role_finder_match_count`),SL=[`amplemarket`,`surfe`],CL=[{provider:`amplemarket`},{provider:`surfe`}],wL=r.object({pipe_id:r.literal(vL),run_if:b(),connector:C(),config:r.object({providers:E({sectionKey:`general`,defaultProviders:CL,availableProviders:SL}),titles:id({sectionKey:`general`,groupPath:`config.general`,label:`Titles`,path:`config.titles`,info:`Job titles to look for at the company. All of them are searched at once, so a broad list can come back weighted towards a single title.`,guide:`All titles are searched at once, so a broad list can come back weighted towards a single title.`,maxItems:5,minItems:1,suggestionsDef:g(`person.job_titles`),expectedTagType:`string`}),limit:_d({sectionKey:`general`,groupPath:`config.general`,label:`Limit`,path:`config.limit`,info:`Maximum people returned per company. Billing is per company, not per person.`,guide:`Maximum people returned per company. Billing is per company, not per person.`,min:1,max:15}).default(15),input_fields:L(r.object({[yL.name]:T({fieldName:yL.name})})),output_fields:I(r.object({[bL.name]:D({fieldName:bL.name}),[xL.name]:D({fieldName:xL.name})}))})}),TL=e=>kf(K(yL,e)),EL={"roles-waterfall-v1-amplemarket":{provider:`amplemarket`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`},"roles-waterfall-v1-surfe":{provider:`surfe`,allowManagedConnection:!0,credits:{default:1.5},mode:`onSuccess`}},DL=class extends V{pipeId=vL;payload;payloadSchema=wL;billableOperations=EL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return this.payload.config?.providers.map(e=>e.provider)||[]}estimateBillableOperations(e){return U(e,...this.getProviderNames().map(e=>jg(e,this.billableOperations).billableOperation))}getInputRequirement(){return TL(this.payload.config)}getSecretRequirements(){return J(this.payload.config?.titles??[])}getConstantRequirements(){return mm(this.payload.config?.titles??[])}getRawOutputFields(){return{[bL.name]:this.catalogOutput(bL,{isPrimaryOutput:!0}),[xL.name]:this.catalogOutput(xL)}}getConnectionsRequirements(){let e={amplemarket:`amplemarket_people_search`,surfe:`surfe_people_enrich`};return(this.payload.config?.providers||[]).map((t,n)=>({provider:t.provider,rateLimitRatio:Y(n),rateLimitOperation:e[t.provider],allowManagedConnection:!0}))}},OL=wL,kL={pipeId:vL,basePipe:W(vL),managedProviders:SL,deprecatedProviders:[],allowedUserConnectionProviders:SL,label:`Role finder (multiple)`,executionMode:`waterfall`,categories:[`people_data`],lifecycle:null,description:`Find every person at a company holding one of the given job titles, as a list. Expand it into rows to enrich each person.`,tags:[H.PEOPLE_PROFILES],keywords:[`employees`,`team`,`decision makers`,`colleagues`,`several`,`fan out`],docPath:G(vL),billableOperations:EL,inputFieldMode:`static`,outputFieldMode:`static`,defaultInputRequirement:TL(null),defaultPayload:{pipe_id:vL,run_if:null,connector:null,config:{titles:[],limit:15,providers:CL,input_fields:{company_domain:{alias:``}},output_fields:{role_finder_matches:{alias:``,enabled:!0},role_finder_match_count:{alias:``,enabled:!0}}}}},AL=[{label:`demo-leads`,value:`demo-leads`},{label:`demo-companies`,value:`demo-companies`},{label:`demo-contacts`,value:`demo-contacts`}],jL=[{label:`Demo project`,value:`demo-project`},{label:`Sales pipeline`,value:`sales-pipeline`}];function ML(e){let t=e?.config?.project;return typeof t==`string`&&t.length>0?t:void 0}function NL(e){if(!e||e.conditions.length===0)return null;let t=JSON.stringify({logic:e.logic,conditions:e.conditions.map(e=>[e.field_name,e.operator,e.value])}),n=2166136261;for(let e=0;e<t.length;e++)n^=t.charCodeAt(e),n=Math.imul(n,16777619)>>>0;return n.toString(16).padStart(8,`0`)}function PL(e,t,n){let r=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40),i=`rr--${r(e)}--${r(t)}`;return n?`${i}--f-${r(n)}`:i}function FL(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}const IL={requires:{connection:`pipe0`},enabledIf:v(`pipe0`,`Select a pipe0 connection to see sheet suggestions`),options:async({query:e,client:t,environment:n})=>n===`sandbox`?AL:t?(await t.sheets.list({query:e})).map(e=>({label:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},LL={requires:{connection:`pipe0`,fields:[`config.project`]},enabledIf:v(`pipe0`,`Select a pipe0 connection to see sheet suggestions`),options:async({query:e,client:t,environment:n,payload:r})=>n===`sandbox`?AL:t?(await t.sheets.list({query:e,projectSlug:ML(r)})).map(e=>({label:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},RL={requires:{connection:`pipe0`},enabledIf:v(`pipe0`,`Select a pipe0 connection to see project suggestions`),options:async({query:e,client:t,environment:n})=>n===`sandbox`?jL:t?(await t.projects.list({query:e})).map(e=>({label:e.name&&e.name!==e.slug?`${e.name} (${e.slug})`:e.slug,value:e.slug})):[],widgets:{provider_logo:{provider:`pipe0`}}},zL=[{value:`email`,label:`email`,data:{type:`string`,format:`email`}},{value:`name`,label:`name`,data:{type:`string`}},{value:`company`,label:`company`,data:{type:`string`}}],BL={"demo-leads":zL,"demo-companies":[{value:`domain`,label:`domain`,data:{type:`string`,format:`website_url`}},{value:`company_name`,label:`company_name`,data:{type:`string`}}],"demo-contacts":zL},VL=e=>({requires:{connection:`pipe0`,fields:[e.sheetPath]},enabledIf:v(`pipe0`,`Select a pipe0 connection to see column suggestions`),options:async({payload:t,client:n,environment:r})=>{let i=FL(t,e.sheetPath);return typeof i!=`string`||!i.trim()||i.includes(`{{`)?[]:r===`sandbox`?BL[i.trim()]??zL:n?(await n.sheets.fields({slug:i.trim()})).filter(t=>(e.includeJson||t.type!==`json`)&&t.name.toLowerCase()!==`id`).map(e=>({value:e.name,label:e.name,data:{type:String(e.type),...e.format?{format:String(e.format)}:{}}})):[]},widgets:{provider_logo:{provider:`pipe0`}}}),HL=`row:append:sheet@1`,UL=_(`sheet_record_id`),WL=_(`created_sheet`),GL=r.object({pipe_id:r.literal(HL),connector:S(),run_if:b(),config:r.object({project:x({label:`Project`,info:"Project the destination sheet lives in (its org-unique slug). Pick an existing project or type a new slug โ a new project is created when `allow_entity_creation` is on.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.project`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:RL}),sheet:x({label:`Sheet ID`,info:'The destination sheet\'s identifier (its slug โ NOT the display name). Slugs are org-unique: pick an existing sheet to append into it, or type a NEW slug to create one โ a generic slug (e.g. "results", "companies") is likely to match an unrelated existing sheet, so for a new sheet use a short descriptive slug plus a few random chars (e.g. "ceos-x7k2") that can\'t collide. Type `@` to insert a field reference / `$` for a secret.',groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:LL,enabledIf:e=>e.config?.project?{disabled:!1}:{disabled:!0,message:`Select a project first`}}),run_added_rows:ud({defaultValue:!0,groupPath:`config.advanced`,path:`config.run_added_rows`,sectionKey:`general`,description:`Auto-run the destination sheet's pipes over the row this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,label:`Run added rows`}),allow_entity_creation:ud({label:`Allow creating missing entities`,description:`Leave this on (the default): missing fields, sheets, and projects are created as needed (unknown fields become columns). Set false ONLY when the user explicitly forbids creating anything โ never as a precaution; when in doubt, leave it on. A destination sheet existing (even one you just created) does not make false safe: its columns are entities too. With it off a missing sheet/project fails the run, and with write_fields set the destination must already have every written column (the pipe fails fast with the missing names).`,defaultValue:!0,groupPath:`config.advanced`,path:`config.allow_entity_creation`,sectionKey:`general`}),write_fields:Ju({label:`Fields`,info:`All fields are written if empty. An entry's optional alias renames the destination column.`,groupPath:`config.general`,path:`config.write_fields`,sectionKey:`general`,disableSearch:!0}),output_fields:I(r.object({[UL.name]:D({fieldName:UL.name}),[WL.name]:D({fieldName:WL.name})}))})}).check(e=>{let t=e.value.config?.write_fields??[],n=t.map(e=>(e.alias?.trim()||e.field_name).toLowerCase());t.forEach((t,r)=>{let i=t.alias?.trim();i&&(Cf(i)&&e.issues.push({code:`custom`,input:i,path:[`config`,`write_fields`,r,`alias`],message:`'${i}' is reserved and cannot be written to the destination sheet.`}),n.filter(e=>e===i.toLowerCase()).length>1&&e.issues.push({code:`custom`,input:i,path:[`config`,`write_fields`,r,`alias`],message:`'${i}' collides with another write_fields destination name.`}))})}),KL={"row-append-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},qL=class extends V{pipeId=HL;payload;payloadSchema=GL;billableOperations=KL;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-append-sheet-v1-pipe0`)}getInputRequirement(){let e=[pm([this.payload.config.project,this.payload.config.sheet],{expectedType:`string`})];if(this.payload.config.write_fields?.length)for(let t of this.payload.config.write_fields)e.push(B({name:t.field_name,resolvedName:t.field_name,label:``,description:``,type:e=>{let n=Xf(e,t.field_name);if(!n)throw Error(`Unable to find field with name ${t.field_name}. But needed by prompt parser.`);return n.type||`unknown`},format:null}));return Of(...e)}getSecretRequirements(){return J([this.payload.config.project,this.payload.config.sheet])}getConstantRequirements(){return mm([this.payload.config.project,this.payload.config.sheet])}getRawOutputFields(){return{[UL.name]:this.catalogOutput(UL),[WL.name]:this.catalogOutput(WL)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},JL=GL,YL={pipeId:HL,basePipe:W(HL),label:`Append row to sheet`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:"Add rows to a pipe0 sheet in a given project. config.project and config.sheet may each be a literal slug or a `{{ field_name }}` tag.",guide:`Append records to another pipe0 sheet. config.project (required) is the destination project's org-unique slug. When working inside a project, pass that project's slug (see CURRENT CONTEXT). config.sheet is the destination sheet's slug; both may be a \`{{ field }}\` tag for a per-row destination. config.write_fields is the destination's CONTRACT: list exactly the columns it consumes. An entry's optional alias renames its destination column: { field_name: "email", alias: "signup_email" } reads \`email\` from the source row and writes it as \`signup_email\`. EMPTY write_fields mirrors EVERY source column into the destination โ almost never what a routing/handoff sheet wants. Leave allow_entity_creation at its default (on) unless the user explicitly forbids creating anything. With allow_entity_creation on a missing project/sheet is created and unknown fields become columns. A just-created destination sheet still needs allow_entity_creation โ its columns count as entities. With allow_entity_creation off nothing is created; with write_fields set, the pipe fails fast if the destination lacks any written column. A sheet slug already in a DIFFERENT project fails the rows either way. run_added_rows is BEST-EFFORT. When the destination is too busy to accept the auto-run, the row still lands and the cell completes labeled "Added โ auto-run skipped". The destination's next run picks it up. Destination slugs are ORG-UNIQUE, so config.sheet addresses a sheet across your whole org. An existing slug REUSES that sheet (appending into it) when it's in config.project, and FAILS when it lives elsewhere. For a genuinely new sheet use a short descriptive slug plus 3-4 random alphanumeric chars (e.g. "ceos-x7k2"). You cannot see other projects' slugs, so only the random suffix makes a new slug collision-proof. Set the display name afterwards: in-app via the name_workspace tool, via API with PATCH /v1/sheets/{sheet_id}. To expand a list field into MANY rows (a 1:N relationship), use row:expandappend:sheet@1 instead. To bulk-copy existing rows across sheets, prefer the rows:copy_to_sheet@1 effect. NON-IDEMPOTENT: each run appends again, so re-running duplicates rows. Rows written to another sheet cannot be undone. Rehearse an UNTESTED flow in sandbox first (env:change@1). An append whose payload validated against a known shape runs in production directly. To retry after a partial failure, adopt the succeeded cells (rows:adopt@1 with adopt_statuses:["completed"]) then rows:enrich@1. Requires a pipe0 connection (list_connections).`,docPath:G(HL),tags:[H.FIELDS],keywords:[`add`,`insert`,`write`,`push`,`export`],hasSideEffects:!0,billableOperations:KL,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:HL,connector:{strategy:`first`,connections:[]},run_if:null,config:{project:``,sheet:``,run_added_rows:!0,allow_entity_creation:!0,write_fields:[],output_fields:{sheet_record_id:{alias:``,enabled:!0},created_sheet:{alias:``,enabled:!0}}}}},XL=`row:expandappend:sheet@1`,ZL=_(`sheet_record_ids`),QL=_(`input_objects`),$L=`expanded_value`,eR=r.object({pipe_id:r.literal(XL),connector:S(),run_if:b(),config:r.object({project:x({label:`Project`,info:"Project the destination sheet lives in (its org-unique slug). Pick an existing project or type a new slug โ a new project is created when `allow_entity_creation` is on.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.project`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:RL}),sheet:x({label:`Sheet ID`,info:`The destination sheet's identifier (its slug โ NOT the display name). Slugs are org-unique: pick an existing sheet to write into it, or type a NEW slug to create one. A generic slug (e.g. "results", "companies") is likely to match an unrelated existing sheet, so for a new sheet use a short descriptive slug plus a few random chars (e.g. "ceos-x7k2") that can't collide.`,groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:LL,enabledIf:e=>e.config?.project?{disabled:!1}:{disabled:!0,message:`Select a project first`}}),run_added_rows:ud({defaultValue:!0,groupPath:`config.general`,path:`config.run_added_rows`,sectionKey:`general`,info:`Auto-run the destination sheet's pipes over the rows this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,guide:`Auto-run the destination sheet's pipes over the rows this pipe appended. A bounded onward chain is fine (the destination's own write pipes cascade further); auto-run is suppressed only when the destination's write chain could loop back into a sheet on the path.`,label:`Run added rows`}),write_fields:Ju({label:`Fields`,info:`Source-row fields written onto every expanded row alongside the item (e.g. a join key like user_id). An entry's optional alias renames the destination column. Unlike row:append:sheet@1, empty writes NO source columns.`,groupPath:`config.general`,path:`config.write_fields`,sectionKey:`general`,disableSearch:!0}),allow_entity_creation:ud({label:`Allow creating missing entities`,description:`Leave this on (the default): a missing sheet or project is created as needed, along with the destination column and any write_fields columns. Set false ONLY when the user explicitly forbids creating anything โ never as a precaution; when in doubt, leave it on. A destination sheet existing (even one you just created) does not make false safe: the destination column is an entity too. With it off the pipe fails fast when the destination lacks any column it writes.`,defaultValue:!0,groupPath:`config.advanced`,path:`config.allow_entity_creation`,sectionKey:`general`}),...dd({groupPath:`config.destination`,sectionKey:`general`,defaultName:$L,nameInfo:`Name of the field each list item is written to on the destination sheet. Each item is stored as-is (objects/arrays as one json cell); extract flat columns afterwards with json:extract:multi@1.`}),input_fields:L(r.object({[QL.name]:T({fieldName:QL.name})})),output_fields:I(r.object({[ZL.name]:D({fieldName:ZL.name})}))})}).check(e=>{let t=e.value.config?.destination_field_name;t&&Cf(t)&&e.issues.push({code:`custom`,input:t,path:[`config`,`destination_field_name`],message:`'${t}' is reserved and cannot be used as a destination field name.`});let n=(t?.trim()||`expanded_value`).toLowerCase(),r=new Set;(e.value.config?.write_fields??[]).forEach((t,i)=>{let a=t.alias?.trim(),o=a||t.field_name,s=a?`alias`:`field_name`,c=o.toLowerCase();Cf(o)&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' is reserved and cannot be written to the destination sheet.`}),c===n&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' collides with the destination field each item is written to.`}),r.has(c)&&e.issues.push({code:`custom`,input:o,path:[`config`,`write_fields`,i,s],message:`'${o}' is listed more than once.`}),r.add(c)})}),tR={"row-expandappend-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},nR=e=>B(K(QL,e)),rR=class extends V{pipeId=XL;payload;payloadSchema=eR;billableOperations=tR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-expandappend-sheet-v1-pipe0`)}getInputRequirement(){return nR(this.payload.config)}getRawOutputFields(){return{[ZL.name]:this.catalogOutput(ZL)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},iR=eR,aR={pipeId:XL,basePipe:W(XL),label:`Expand list to sheet`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:"Expand a list into sheet rows โ each item is written as-is to an `expanded_value` column (objects/arrays as json).",guide:`Expand a 1:N list into rows on ANOTHER sheet: each item in the input_objects array becomes its own row on config.sheet. config.project (required) is the destination project's org-unique slug. When working inside a project, pass that project's slug (see CURRENT CONTEXT). Every item is written AS-IS to a single column on the destination. An object/array lands as one json cell โ its fields are not spread into separate columns. A primitive lands as a scalar. That column is \`expanded_value\` by default. Rename/retype it via config.destination_field_name / destination_field_type / destination_field_format / destination_field_label. Type/format are inferred from the data when left unset. For flat columns, run json:extract:multi@1 on the DESTINATION sheet afterwards to pull exactly the values you need. config.write_fields copies chosen SOURCE-row fields onto every expanded row alongside the item. Use it for what the item does not already carry. Examples: a stable join key like user_id; the parent's identity when the items are primitives (bare emails, urls). A standardized object item embeds its own context โ e.g. a role match carries company_name/company_domain. Extract that context from the item on the destination instead of duplicating it here. An entry's optional alias renames its destination column: { field_name: "email", alias: "signup_email" } reads \`email\` from the source row and writes it as \`signup_email\`. Unlike row:append:sheet@1, EMPTY write_fields writes no source columns โ the expanded item is the row. write_fields values are read from the row at run time, deliberately not typed inputs. Editing the list never force-requeues this pipe. Leave allow_entity_creation at its default (on) unless the user explicitly forbids creating anything. The destination/write_fields columns are created by THIS pipe, so a just-created destination sheet still needs allow_entity_creation. With allow_entity_creation off nothing is created; the pipe fails fast when the destination lacks those columns. A sheet slug that exists in a DIFFERENT project fails the rows either way. run_added_rows is BEST-EFFORT. When the destination is too busy to accept the auto-run, the rows still land and the cell completes labeled "Added โ auto-run skipped". The destination's next run picks those rows up. Destination slugs are ORG-UNIQUE, so config.sheet addresses a sheet across your whole org. An existing slug REUSES that sheet (appending into it) when it's in config.project, and FAILS when it lives elsewhere. A generic slug like "results"/"companies"/"current-employers" likely hits an unrelated sheet. For a genuinely new sheet use a short descriptive slug plus 3-4 random alphanumeric chars (e.g. "ceos-x7k2", "prospects-employers-9fq"). You cannot see other projects' slugs, so only the random suffix makes a new slug collision-proof. Set the display name afterwards: in-app via the name_workspace tool, via API with PATCH /v1/sheets/{sheet_id}. Use this pipe when a column holds a list you need per-element (e.g. a profile's current employers) BEFORE enriching each element. Never collapse the list with an LLM. Requires a pipe0 connection (resolve via list_connections). Typical chain: json:extract:multi@1 to build the array column โ this pipe to expand it into an intermediary sheet โ json:extract:multi@1 THERE to flatten the fields you need out of expanded_value โ enrich each row (e.g. role:waterfall@1) โ rows:copy_to_sheet@1 to the final sheet. NON-IDEMPOTENT: each run appends again, so re-running duplicates rows. Rows written to another sheet cannot be undone. Rehearse an UNTESTED flow in sandbox first (env:change@1). An append whose payload validated against a known shape runs in production directly. To retry after a partial failure, adopt the succeeded cells (rows:adopt@1 with adopt_statuses:["completed"]) then rows:enrich@1. In the replace-on-refresh pattern (paired rows:delete:sheet@1 instances), position in the pipes array is NOT execution order. Gate THIS pipe with a run_if on each delete's aliased count output (status eq completed). Those run_if references are the dependency edges: they guarantee delete-before-append and skip the append whenever the deletes were skipped.`,docPath:G(XL),tags:[H.FIELDS],keywords:[`explode`,`denormalize`,`array`,`split`,`one to many`,`fan out`,`expansion`,`expand list`,`list to rows`,`rows`,`unnest`,`materialize`],hasSideEffects:!0,billableOperations:tR,defaultInputRequirement:nR(null),inputFieldMode:`static`,outputFieldMode:`static`,defaultPayload:{pipe_id:XL,connector:{strategy:`first`,connections:[]},run_if:null,config:{project:``,sheet:``,run_added_rows:!0,allow_entity_creation:!0,write_fields:[],destination_field_name:$L,destination_field_type:``,destination_field_format:``,destination_field_label:``,input_fields:{input_objects:{alias:``}},output_fields:{sheet_record_ids:{alias:``,enabled:!0}}}}},oR=`row:roundrobin:sheet@1`,sR=fl(v(`pipe0`,`Add a pipe0 connection first`),dl(e=>e.config?.sheet,`Select a sheet first`)),cR=r.object({pipe_id:r.literal(oR),connector:S(),run_if:b(),config:r.object({sheet:bd({label:`Sheet`,info:`The sheet to rotate through โ e.g. a roster of sellers. Always another sheet.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet`,required:!0,optionsDef:IL}),sheet_where:Du({label:`Rotation pool`,info:`Only target-sheet rows matching these conditions rotate. Leave empty to rotate over the whole sheet.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_where`,required:!1,enabledIf:sR,fieldNamePlaceholder:`segment`,optionsDef:VL({sheetPath:`config.sheet`})}),sheet_unique_field:Zu({label:`Unique column`,info:`Column of the target sheet that must be filled and unique in every row โ checked at run time.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_unique_field`,required:!0,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`})}),sheet_copy_fields:Xu({label:`Fields to bring over`,info:`Target-sheet columns copied from the picked row; each becomes an output column.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_copy_fields`,minItems:1,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`,includeJson:!0})}),sheet_weight_field:Zu({label:`Weight column`,info:`Numeric target-sheet column scaling each row's share. 0 pauses a row; empty counts as 1. Leave unset for equal shares.`,groupPath:`config.general`,sectionKey:`general`,path:`config.sheet_weight_field`,enabledIf:sR,optionsDef:VL({sheetPath:`config.sheet`})}),counter_field:Zu({label:`Counter field`,info:`Column of this sheet whose unique values advance the rotation.`,groupPath:`config.general`,sectionKey:`general`,path:`config.counter_field`,required:!0})})}),lR={"row-roundrobin-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},uR=class extends V{pipeId=oR;payload;payloadSchema=cR;billableOperations=lR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`row-roundrobin-sheet-v1-pipe0`)}getTemplatedFields(){return(this.payload.config.sheet_where?.conditions??[]).map(e=>typeof e.value==`string`?e.value:null)}getInputRequirement(){let e=this.payload.config.counter_field.field_name,t=B({name:e,resolvedName:e,label:``,description:``,source:`config.counter_field โ a column of THIS sheet`,type:t=>Xf(t,e)?.type||`unknown`,format:null}),n=pm(this.getTemplatedFields(),{expectedType:`string`});return n.kind===`all`&&n.of.length===0?t:Of(t,n)}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getBucketRequirements(){let e=dt(this.payload.config.sheet),t=this.payload.config.counter_field.field_name;if(!e||!t)return[];let n=this.payload.config.sheet_where??null;return(n?.conditions??[]).some(e=>typeof e.value==`string`&&e.value.includes(`{{`))?[]:[{slug:PL(e,t,NL(n)),type:`counter`,schema:null,allowCreation:!0}]}getRawOutputFields(){let e={};for(let t of this.payload.config.sheet_copy_fields){if(!t.field_name)continue;let n=t.alias||t.field_name;e[t.field_name]={description:`Value of the target sheet's "${t.field_name}" column on the round-robin-picked row.`,enabled:!0,format:t.format??null,label:n,name:t.field_name,resolvedName:n,jsonMeta:null,type:t.type??`unknown`,isCatalogFIeld:!1,isPrimaryOutput:!1}}return e}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},dR=cR,fR={pipeId:oR,basePipe:W(oR),label:`Round-robin from sheet`,executionMode:`single`,categories:[`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Rotate through the rows of another sheet (e.g. a sellers roster). Each unique counter value picks the next row round-robin; the selected columns of the picked row become outputs. Re-run safe โ the same counter value always picks the same row.`,guide:"Round-robin assignment from another pipe0 sheet (the roster โ e.g. sellers). config.sheet is the target sheet's org-unique slug โ one FIXED sheet for the whole pipe, never a per-row reference. config.sheet_where (optional) restricts the rotation pool to target-sheet rows matching the conditions; null = whole sheet. Condition field_names are LITERAL target-sheet columns; string values may hold `{{ field }}` refs resolved per lead. Example: segment eq {{ segment }} routes each lead over its own segment's rows. Each distinct RESOLVED filter cycles on its own counter โ strict round robin within each pool. Avoid high-cardinality templated filters ({{ email }}-like): every distinct value creates a counter bucket and exhausts the org bucket quota. config.sheet_unique_field names a target-sheet column that must be filled in EVERY row and unique across rows. The run fails with a clear message when that column has gaps or duplicates; this guarantees every roster row is a distinct assignee. config.sheet_copy_fields are the target-sheet columns copied from the picked row. Each becomes an output column named like the column, or like the entry's `alias` when set. Use an alias whenever THIS sheet already has a column of that name (e.g. roster `email` โ alias `seller_email`). Otherwise the copy silently writes into the existing column. Entries are typed by `type`/`format`, copied from the target sheet's schema when picked. A target column whose type later changes fails the run with an output-type mismatch; re-pick the column to refresh the copy. config.counter_field names a column of the CURRENT sheet. Every unique value of that column takes the next number from an internal counter bucket (first-seen โ 1, next new value โ 2, โฆ). The SAME value always keeps the SAME number, so re-runs are stable. For lead/signup routing the counter defaults to the ACCOUNT key โ a company domain column. Every lead from the same company then keeps the same assignee. Build the domain column: work email โ field:domainify@1; personal email โ reverse lookup; coalesce with fields:merge@1. Put the counter on the person's email ONLY when account grouping is explicitly unwanted (consumer flows). See the routing:leads:roundrobin@1 playbook. The pick is slot (n โ 1) mod W over the pool's rows in creation order. W is the pool's total weight (= row count when unweighted). Adding pool rows only changes the wrap; deleting or reordering reshuffles subsequent picks. config.sheet_weight_field (optional) names a NUMERIC target-sheet column. A row with weight w takes w of every W slots, spread evenly across the cycle (weight 2 โ two consecutive picks). Weight 0 pauses the row; an empty cell counts as 1. A negative or non-integer weight fails the run loudly. Editing weights re-shapes FUTURE picks only โ the counter and its bucket are untouched, so rotation never restarts. The internal counter is a real org-scoped counter bucket, visible in the buckets UI (slug `rr--<sheet>--<counter field>`). Changing the sheet or the counter field starts a fresh rotation. A row with a missing/empty counter value is gated to skipped before the runner. Empty roster โ all outputs no_result. A copied column that is empty on the picked row resolves to no_result. Missing sheet (bad slug) fails the record naming the slug. The target sheet is NEVER modified. FREE pipe0 operation; requires a pipe0 connection (list_connections).",docPath:G(oR),tags:[H.FIELDS],keywords:[`rotate`,`rotation`,`distribute`,`routing`,`assignment`,`owner`,`alternate`],billableOperations:lR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`config`,defaultPayload:{pipe_id:oR,connector:{strategy:`first`,connections:[]},run_if:null,config:{sheet:``,sheet_where:null,sheet_unique_field:{field_name:``},sheet_copy_fields:[],sheet_weight_field:{field_name:``},counter_field:{field_name:``}}}},pR=`rows:delete:sheet@1`,mR=_(`sheet_deleted_count`),hR=r.object({pipe_id:r.literal(pR),connector:S(),run_if:b(),config:r.object({sheet:x({label:`Sheet ID`,info:"The sheet to delete from (its org-unique slug โ NOT the display name). Type `@` to insert a field reference for a per-row sheet. A sheet that does not exist yet completes with 0 deleted.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:IL}),where:Du({label:`Delete conditions`,info:"Conditions on the target sheet's columns. Column names are literal; in the value, type `/` to insert a field reference (e.g. `{{ user_id }}`). Rows matching the condition are DELETED.",groupPath:`config.general`,sectionKey:`general`,path:`config.where`,fieldNamePlaceholder:`user_id`,optionsDef:VL({sheetPath:`config.sheet`})}),output_fields:I(r.object({[mR.name]:D({fieldName:mR.name})}))})}),gR={"rows-delete-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},_R=class extends V{pipeId=pR;payload;payloadSchema=hR;billableOperations=gR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`rows-delete-sheet-v1-pipe0`)}getTemplatedFields(){return[this.payload.config.sheet,...(this.payload.config.where?.conditions??[]).map(e=>typeof e.value==`string`?e.value:null)]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[mR.name]:this.catalogOutput(mR)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},vR=hR,yR={pipeId:pR,basePipe:W(pR),label:`Delete rows in sheet`,executionMode:`single`,categories:[`tools`,`actions`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Delete rows in ANOTHER pipe0 sheet matching a condition block. The replace-on-refresh building block: delete previously written downstream rows before re-appending fresh ones.`,guide:"Delete rows in another pipe0 sheet whose columns match config.where. This pipe is the delete half of the replace-on-refresh pattern. Pair it with the pipe that appends downstream rows (row:append:sheet@1 / row:expandappend:sheet@1), keyed on a stable join column, e.g. `user_id eq \"{{ user_id }}\"`. A re-enrichment first clears the rows it previously wrote and re-appends. Position in the pipes array is NOT execution order โ pipes run in dependency waves, independent pipes concurrently. Delete-before-append is enforced by the APPEND pipe's run_if referencing this pipe's (aliased) count output status eq completed, never by list ordering. config.sheet is the target's org-unique slug (literal or `{{ field }}` tag). config.where semantics match rows:find:sheet@1. field_name is a LITERAL target column, not validated against the target โ a wrong name behaves like a null cell and deletes NOTHING. String values may contain `{{ field }}` tags resolved per row. A value resolving to an empty string fails the row: a blank key must not delete everything. A target sheet that does not exist yet completes with sheet_deleted_count 0 โ first runs happen before downstream sheets exist, by design. The replace pattern usually needs SEVERAL instances on one sheet, one per downstream target. Output names are sheet-global: alias each instance's sheet_deleted_count (e.g. experiences_deleted_count / profiles_deleted_count), or the defaults collide and the payload won't validate. Skip-propagation protects previously written rows ONLY when the templated key is an enrichment OUTPUT โ the typed input skips on upstream failure. An INPUT column key like user_id is always satisfied, so the delete would run even on a failed refresh. Gate the delete with an explicit run_if on a success flag (e.g. a bucket:claim@1 is_claim_successful value eq true). Failed/no_result refreshes then keep the old rows. DESTRUCTIVE and NON-idempotent: deleted rows cannot be restored except via the target's timetravel. Rehearse in sandbox (env:change@1, the delete is mocked). After a partial failure, adopt succeeded cells (rows:adopt@1) before re-running. Deletes on the same target serialize (exclusive lock) โ expect modest throughput on large refreshes. Requires a pipe0 connection (list_connections).",docPath:G(pR),tags:[H.FIELDS],keywords:[`delete`,`remove`,`clear`,`replace`,`refresh`,`cleanup`,`another sheet`,`downstream`,`purge`],billableOperations:gR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:pR,connector:{strategy:`first`,connections:[]},run_if:null,config:{sheet:``,where:null,output_fields:{sheet_deleted_count:{alias:``,enabled:!0}}}}},bR=`SELECT table_schema, table_name, column_name, data_type FROM information_schema.columns WHERE table_schema NOT IN ('pg_catalog', 'information_schema') ORDER BY table_schema, table_name, ordinal_position`,xR=`table_catalog NOT IN ('system', '__databricks_internal') AND table_schema <> 'information_schema'`,SR=`SELECT table_catalog, table_schema, table_name FROM system.information_schema.tables WHERE ${xR} ORDER BY table_catalog, table_schema, table_name`,CR=`SELECT table_catalog, table_schema, table_name, column_name, data_type FROM system.information_schema.columns WHERE ${xR} ORDER BY table_catalog, table_schema, table_name, ordinal_position`;function wR(e){return typeof e==`string`?e:String(e??``)}function TR(e){let t=new Map;for(let n of e){let e=wR(n.table_schema),r=wR(n.table_name);if(!r)continue;let i=`${e}.${r}`,a=t.get(i);a||(a={schema:e,name:r,columns:[]},t.set(i,a)),a.columns.push({name:wR(n.column_name),type:wR(n.data_type)})}return t}function ER(e){return`${e.catalog?`${e.catalog}.`:``}${e.schema?`${e.schema}.`:``}${e.name}`}function DR(e,t){if(e.length===0)return{summary:`The connected database exposes no tables outside the system schemas โ nothing to query yet.`,data:{tables:[],truncated:t}};let n=e.map(e=>{if(e.columns.length===0)return`- ${ER(e)} โ (columns not listed; DESCRIBE or sample to inspect)`;let t=e.columns.slice(0,50),n=e.columns.length-t.length,r=t.map(e=>e.type?`${e.name}:${e.type}`:e.name).join(`, `);return`- ${ER(e)} โ ${r}${n>0?` (+${n} more)`:``}`}),r=e.some(e=>e.catalog)?` Names are fully qualified (catalog.schema.table) โ use them VERBATIM in config.query.`:``;return{summary:[`Schema map (${e.length} table${e.length===1?``:`s`}${t?`, truncated โ the database has more`:``}). Write config.query against these;${r} sample rows free via run_search_oneshot.`,...n].join(`
|
|
85
85
|
`),data:{tables:e,truncated:t}}}async function OR(e){let t=await e({query:SR,limit:500}),n=new Map;for(let e of t.rows){let t=wR(e.table_catalog),r=wR(e.table_schema),i=wR(e.table_name);i&&n.set(`${t}.${r}.${i}`,{catalog:t,schema:r,name:i,columns:[]})}let r=await e({query:CR,limit:500});for(let e of r.rows)n.get(`${wR(e.table_catalog)}.${wR(e.table_schema)}.${wR(e.table_name)}`)?.columns.push({name:wR(e.column_name),type:wR(e.data_type)});return DR([...n.values()],t.hasMore||r.hasMore)}async function kR(e){let t=await e({query:`SHOW TABLES`,limit:500}),n=t.rows.map(e=>({schema:wR(e.database??e.namespace),name:wR(e.tableName??e.table_name)})).filter(e=>e.name),r=t.hasMore||n.length>25,i=[];for(let{schema:t,name:r}of n.slice(0,25)){let n=(await e({query:`DESCRIBE TABLE ${t?`${t}.`:``}${r}`,limit:500})).rows.map(e=>({name:wR(e.col_name),type:wR(e.data_type)})).filter(e=>e.name&&!e.name.startsWith(`#`));i.push({schema:t,name:r,columns:n})}return DR(i,r)}async function AR(e,t){if(t.environment===`sandbox`)return{summary:`Schema exploration needs the real database connection โ it's read-only and free. Switch to production (env:change@1) to explore the schema, then rehearse the program in sandbox.`};if(!t.runQuery)return{summary:`Live schema exploration isn't available in this context.`};if(e===`databricks`)try{return await OR(t.runQuery)}catch{try{let e=await t.runQuery({query:bR,limit:500});return DR([...TR(e.rows).values()],e.hasMore)}catch{return kR(t.runQuery)}}let n=await t.runQuery({query:bR,limit:500});return DR([...TR(n.rows).values()],n.hasMore)}const jR=`rows:find:databricks@1`,MR=_(`db_rows_found_count`),NR=_(`db_found_rows`),PR=r.object({pipe_id:r.literal(jR),connector:S(),run_if:b(),config:r.object({query:Iu({label:`SQL query`,info:`A single read-only SELECT statement, resolved per row โ use {{ field }} for input refs, {{ SECRETS.X }} / {{ CONSTANTS.X }} for secrets/constants. Do not add your own LIMIT for capping; use the row limit below.`,groupPath:`config.general`,sectionKey:`general`,path:`config.query`,rows:8,required:!0,maxLength:2e4}),limit:_d({label:`Row limit`,info:`Maximum number of rows returned in the matching-rows output. The rows-found count is always the true total.`,groupPath:`config.advanced`,sectionKey:`general`,path:`config.limit`,min:1,max:50}),output_fields:I(r.object({[MR.name]:D({fieldName:MR.name}),[NR.name]:D({fieldName:NR.name})}))})}),FR={"rows-find-databricks-v1-databricks":{provider:`databricks`,allowManagedConnection:!1,mode:null,credits:null,note:`Querying your own Databricks SQL warehouse is free.`}},IR=class extends V{pipeId=jR;payload;payloadSchema=PR;billableOperations=FR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`databricks`]}estimateBillableOperations(e){return U(e,`rows-find-databricks-v1-databricks`)}getTemplatedFields(){return[this.payload.config.query]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[MR.name]:this.catalogOutput(MR),[NR.name]:this.catalogOutput(NR)}}getConnectionsRequirements(){return[{provider:`databricks`,rateLimitRatio:1,rateLimitOperation:`databricks_query`,allowManagedConnection:!1}]}async getAgentContext(e){return AR(`databricks`,e)}},LR=PR,RR={pipeId:jR,basePipe:W(jR),label:`Find rows in Databricks`,executionMode:`single`,categories:[`tools`],lifecycle:null,allowedUserConnectionProviders:[`databricks`],managedProviders:[],deprecatedProviders:[],description:`Look up rows in your own Databricks SQL warehouse with a read-only SQL query resolved per row. Outputs the total match count and the matching rows.`,guide:"Databricks SQL dialect; config.query must be a single read-only SELECT, resolved per row via Liquid โ `{{ field }}` input refs, `{{ SECRETS.X }}` / `{{ CONSTANTS.X }}` supported. Resolved values are interpolated as text, so quote them in the SQL (WHERE email = '{{ email }}'). To discover the schema, draft a payload with a placeholder config.query like \"SELECT 1\" and the chosen connection in connector.connections, then call get_provider_context once โ it returns the workspace-wide table/column map (all Unity catalogs) for free. Always reference tables by their FULLY QUALIFIED three-part name exactly as the map lists them (catalog.schema.table); a bare table name resolves against the warehouse's unpredictable current catalog and usually fails with TABLE_OR_VIEW_NOT_FOUND. Tables under the `samples` catalog (and other built-in demo schemas like `tpch`) are DEMO data, NOT the customer's own โ never answer from them without confirming. READ-ONLY and idempotent โ the gateway enforces single-statement SELECT validation. db_found_rows is capped by config.limit and a ~25KB size budget (rows are dropped from the end to fit); db_rows_found_count is always the TRUE total. When nothing matches, db_found_rows resolves to no_result (NOT an empty array) โ db_rows_found_count (0) still completes, so condition on it to branch on absence. A field resolving to empty renders as an empty string in the SQL โ guard with run_if if that must not match. Requires a databricks connection (list_connections).",docPath:G(jR),tags:[H.FIELDS,H.NEW],keywords:[`sql`,`query`,`lookup`,`warehouse`,`database`,`select`],billableOperations:FR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:jR,connector:{strategy:`first`,connections:[]},run_if:null,config:{query:``,limit:10,output_fields:{db_rows_found_count:{alias:``,enabled:!1},db_found_rows:{alias:``,enabled:!0}}}}},zR=`rows:find:postgres@1`,BR=_(`db_rows_found_count`),VR=_(`db_found_rows`),HR=r.object({pipe_id:r.literal(zR),connector:S(),run_if:b(),config:r.object({query:Iu({label:`SQL query`,info:`A single read-only SELECT statement, resolved per row โ use {{ field }} for input refs, {{ SECRETS.X }} / {{ CONSTANTS.X }} for secrets/constants. Do not add your own LIMIT for capping; use the row limit below.`,groupPath:`config.general`,sectionKey:`general`,path:`config.query`,rows:8,required:!0,maxLength:2e4}),limit:_d({label:`Row limit`,info:`Maximum number of rows returned in the matching-rows output. The rows-found count is always the true total.`,groupPath:`config.advanced`,sectionKey:`general`,path:`config.limit`,min:1,max:50}),output_fields:I(r.object({[BR.name]:D({fieldName:BR.name}),[VR.name]:D({fieldName:VR.name})}))})}),UR={"rows-find-postgres-v1-postgres":{provider:`postgres`,allowManagedConnection:!1,mode:null,credits:null,note:`Querying your own PostgreSQL database is free.`}},WR=class extends V{pipeId=zR;payload;payloadSchema=HR;billableOperations=UR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`postgres`]}estimateBillableOperations(e){return U(e,`rows-find-postgres-v1-postgres`)}getTemplatedFields(){return[this.payload.config.query]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[BR.name]:this.catalogOutput(BR),[VR.name]:this.catalogOutput(VR)}}getConnectionsRequirements(){return[{provider:`postgres`,rateLimitRatio:1,rateLimitOperation:`postgres_query`,allowManagedConnection:!1}]}async getAgentContext(e){return AR(`postgres`,e)}},GR=HR,KR={pipeId:zR,basePipe:W(zR),label:`Find rows in Postgres`,executionMode:`single`,categories:[`tools`],lifecycle:null,allowedUserConnectionProviders:[`postgres`],managedProviders:[],deprecatedProviders:[],description:`Look up rows in your own PostgreSQL database with a read-only SQL query resolved per row. Outputs the total match count and the matching rows.`,guide:"PostgreSQL dialect; config.query must be a single read-only SELECT, resolved per row via Liquid โ `{{ field }}` input refs, `{{ SECRETS.X }}` / `{{ CONSTANTS.X }}` supported. Resolved values are interpolated as text, so quote them in the SQL (WHERE email = '{{ email }}'). To discover the schema, draft a payload with a placeholder config.query like \"SELECT 1\" and the chosen connection in connector.connections, then call get_provider_context once โ it returns the full table/column map for free. READ-ONLY and idempotent โ the gateway enforces single-statement SELECT validation and a read-only transaction. db_found_rows is capped by config.limit and a ~25KB size budget (rows are dropped from the end to fit); db_rows_found_count is always the TRUE total. When nothing matches, db_found_rows resolves to no_result (NOT an empty array) โ db_rows_found_count (0) still completes, so condition on it to branch on absence. A field resolving to empty renders as an empty string in the SQL โ guard with run_if if that must not match. Requires a postgres connection (list_connections).",docPath:G(zR),tags:[H.FIELDS,H.NEW],keywords:[`sql`,`query`,`lookup`,`database`,`select`],billableOperations:UR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:zR,connector:{strategy:`first`,connections:[]},run_if:null,config:{query:``,limit:10,output_fields:{db_rows_found_count:{alias:``,enabled:!1},db_found_rows:{alias:``,enabled:!0}}}}},qR=`rows:find:sheet@1`,JR=_(`sheet_rows_found_count`),YR=_(`sheet_found_rows`),XR=_(`sheet_found_row_ids`),ZR=r.object({pipe_id:r.literal(qR),connector:S(),run_if:b(),config:r.object({sheet:x({label:`Sheet ID`,info:"The sheet to search (its org-unique slug โ NOT the display name). Type `@` to insert a field reference for a per-row sheet.",groupPath:`config.general`,sectionKey:`general`,inputType:`text`,path:`config.sheet`,minLength:3,expectedTagType:`string`,expectedTagFormat:`text`,optionsDef:IL}),where:Du({label:`Match conditions`,info:"Conditions on the target sheet's columns. Column names are literal; in the value, type `/` to insert a field reference (e.g. `{{ email }}`).",groupPath:`config.general`,sectionKey:`general`,path:`config.where`,fieldNamePlaceholder:`email`,optionsDef:VL({sheetPath:`config.sheet`})}),limit:_d({label:`Row limit`,info:`Maximum number of rows returned in the matching-rows output. The rows-found count is always the true total.`,groupPath:`config.advanced`,sectionKey:`general`,path:`config.limit`,min:1,max:100}),output_fields:I(r.object({[JR.name]:D({fieldName:JR.name}),[YR.name]:D({fieldName:YR.name}),[XR.name]:D({fieldName:XR.name})}))})}),QR={"rows-find-sheet-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},$R=class extends V{pipeId=qR;payload;payloadSchema=ZR;billableOperations=QR;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`rows-find-sheet-v1-pipe0`)}getTemplatedFields(){return[this.payload.config.sheet,...(this.payload.config.where?.conditions??[]).map(e=>typeof e.value==`string`?e.value:null)]}getInputRequirement(){return pm(this.getTemplatedFields(),{expectedType:`string`})}getSecretRequirements(){return J(this.getTemplatedFields())}getConstantRequirements(){return mm(this.getTemplatedFields())}getRawOutputFields(){return{[JR.name]:this.catalogOutput(JR),[YR.name]:this.catalogOutput(YR),[XR.name]:this.catalogOutput(XR)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_api_operation`,allowManagedConnection:!0}]}},ez=ZR,tz={pipeId:qR,basePipe:W(qR),label:`Find rows in sheet`,executionMode:`single`,categories:[`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Look up rows in another pipe0 sheet matching a condition block (and/or over eq, neq, gt, gte, lt, lte, contains, matches). Outputs the total match count, the matching rows, and their record IDs.`,guide:'Find rows in another pipe0 sheet. config.sheet is the target sheet\'s org-unique slug (a literal or a `{{ field }}` tag). config.where is a condition block over the TARGET sheet\'s columns: `logic` "and"/"or" combines value conditions; each condition\'s field_name is a LITERAL column name (never templated, NOT validated against the target sheet โ a wrong name behaves like a null cell), and its value may be a literal or contain `{{ field }}` tags resolved per row. Operators: eq/neq compare as text (a number cell 42 matches the value "42"; neq ALSO matches rows where the column is missing or null; JSON object/array cells effectively never match); gt/gte/lt/lte compare numerically (non-numeric cells never match; a non-numeric condition value fails the row); contains is case-INsensitive substring; matches is case-SENSITIVE regex (invalid pattern fails the row). A `null` value with eq matches missing/null cells. READ-ONLY and idempotent โ one query per row, the target sheet is never modified. sheet_found_rows is capped by config.limit and a ~25KB size budget (rows are dropped from the end to fit); sheet_rows_found_count is always the TRUE total. When nothing matches, sheet_found_rows and sheet_found_row_ids resolve to no_result (NOT an empty array) โ sheet_rows_found_count (0) still completes, so condition on it to branch on absence. String condition values that resolve to an empty string fail the row (a blank field must not match everything) โ guard with run_if. Requires a pipe0 connection (list_connections).',docPath:G(qR),tags:[H.FIELDS],keywords:[`lookup`,`query`,`search`,`match`,`filter`,`vlookup`],billableOperations:QR,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:qR,connector:{strategy:`first`,connections:[]},run_if:null,config:{sheet:``,where:null,limit:10,output_fields:{sheet_rows_found_count:{alias:``,enabled:!1},sheet_found_rows:{alias:``,enabled:!0},sheet_found_row_ids:{alias:``,enabled:!1}}}}},nz=`signals:personprofilematch@1`,rz=_(`person_profile_match`),iz=_(`signal_window_start`),az=_(`signal_list`),oz=_(`signal_count`),sz={l30d:30,l90d:90,l180d:180,l365d:365},cz=r.object({pipe_id:r.literal(nz),run_if:b(),connector:Ru(),config:r.object({signals:gd({label:`Signals`,info:`Signal types to emit. Empty = all.`,path:`config.signals`,groupPath:`config.general`,sectionKey:`general`,required:!1,disableSearch:!1,options:xo.map(e=>({value:e,label:Do[e]}))}).default([]),default_window:md({label:`Default window`,info:`Scan window when the window-start input is unmapped or empty for the row. A mapped, non-empty window-start date overrides it per row.`,path:`config.default_window`,groupPath:`config.general`,sectionKey:`general`,required:!1,defaultValue:`l90d`,options:[{value:`l30d`,label:`Last 30 days`},{value:`l90d`,label:`Last 90 days`},{value:`l180d`,label:`Last 180 days`},{value:`l365d`,label:`Last 365 days`}]}),input_fields:L(r.object({[rz.name]:T({fieldName:rz.name}),[iz.name]:T({fieldName:iz.name})})),output_fields:I(r.object({[az.name]:D({fieldName:az.name}),[oz.name]:D({fieldName:oz.name})}))}).optional()}),lz=e=>Of(B(K(rz,e)),Af(K(iz,e))),uz={"signals-personprofilematch-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},dz=class extends V{pipeId=nz;payload;payloadSchema=cz;billableOperations=uz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(){return[]}getInputRequirement(){return lz(this.payload.config)}getRawOutputFields(){return{[az.name]:this.catalogOutput(az,{isPrimaryOutput:!0}),[oz.name]:this.catalogOutput(oz)}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitRatio:1,rateLimitOperation:`pipe0_logic`,allowManagedConnection:!0}]}},fz=cz,pz={pipeId:nz,basePipe:W(nz),label:`Sales signals from profile`,executionMode:`single`,categories:[`people_data`],lifecycle:null,description:`Detect sales signals โ job changes, promotions, role changes, work anniversaries, graduations โ from a standardized person profile inside a per-row time window.`,guide:`Scans person_profile_match's employment/education history for moments in time inside (window_start, now]. The window: a mapped, non-empty signal_window_start date wins per row; otherwise config.default_window applies. Compute the per-row date from re-enrichment cadence with formula:run@1 (e.g. seniority -> days -> date) โ NEVER from last_successfully_enriched_at: that bucket:countif output is restamped within the same cohort run before this pipe reads it, collapsing the window to zero. Every signal carries a stable signal_id ('sig_' + hash of person, from/to company, YYYY-MM, qualifier) โ the same real-world event hashes identically across providers and re-scans, so overlapping windows re-emit but never fork identity. Canonical composition: row:expandappend:sheet@1 expands signal_list into an append-only signals sheet (same project by default; a dedicated org-wide signals project when several systems feed one stream) with destination_field_name 'signal_match' and NO write_fields โ the signals table is standardized to a SINGLE input column holding the payload, because the signal is self-contained (person_name, profile_url, company_domain, metadata all inside). There json:extract:multi@1 flattens whatever columns the consumer needs straight out of signal_match, and bucket:claim@1 on signal_id gates downstream delivery (CRM activity sync) exactly-once. This shape is identical for every signals:* producer, person- or company-scoped, so all of them append into the same table. config.signals narrows the emitted types (empty = all). Outputs are per-scan: signal_list (the JSON list) and signal_count as its condition-friendly flat mirror (0 when the scan found none โ the cell always completes). Deterministic-local: runs for REAL in sandbox, FREE pipe0 operation.`,docPath:G(nz),tags:[H.LINKEDIN,H.LOGIC],keywords:[`job change`,`promotion`,`new role`,`trigger`,`moments`,`buying intent`,`champion tracking`,`boomerang`],billableOperations:uz,defaultInputRequirement:lz(null),inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:nz,run_if:null,connector:null,config:{signals:[],default_window:`l90d`,input_fields:{person_profile_match:{alias:``},signal_window_start:{alias:``}},output_fields:{signal_list:{alias:``,enabled:!0},signal_count:{alias:``,enabled:!0}}}}},mz={provider:`pipe0`,rateLimitOperation:`pipe0_api_operation`,rateLimitRatio:1,allowManagedConnection:!0},pte={requires:{connection:`pipe0`},enabledIf:v(`pipe0`,`Select a pipe0 connection to see stream suggestions`),options:async({query:e,client:t})=>t?(await t.streams.list({query:e,enrollableOnly:!0})).map(e=>({label:e.name&&e.name!==e.slug?`${e.name} (${e.slug})`:e.slug,value:e.slug,data:{contract:e.contract,entity_field:e.entityField??``}})):[],widgets:{provider_logo:{provider:`pipe0`}}},hz=e=>{let t=r.string().check(e=>{e.value===``&&e.issues.push({code:`custom`,input:e.value,message:`Required`})}),n={type:`context_select_input`,label:`Stream`,description:e===`enroll`?`The stream to add these people to. It must already exist โ unlike a bucket, a stream carries credentials and provider config that cannot be created from pipe config.`:`The stream to remove these people from. Removal is recorded now and pushed to the provider on the next sync, which is when it stops costing money.`,groupPath:`config.general`,sectionKey:`general`,path:`config.stream`,required:!0,allowCreate:!1,placeholder:`Select a streamโฆ`,optionsDef:pte,options:[],contractPath:`config.contract`},i=()=>n;return i.staticMeta=n,y.add(t,i),t},gz=()=>r.string().nullable().default(``);function _z(e){let t=e.entity_field?.field_name?.trim();return B(t?{name:t,resolvedName:t,label:``,description:``,type:()=>`string`,format:null}:{name:``,resolvedName:``,label:``,description:``,type:()=>`unknown`,format:null})}const vz=`stream:enroll@1`,yz=_(`is_enrolled`),bz=r.object({pipe_id:r.literal(vz),connector:S(),run_if:b(),config:r.object({stream:hz(`enroll`),entity_field:Zu({label:`Identifier column`,path:`config.entity_field`,groupPath:`config.general`,sectionKey:`general`,required:!0,description:"The column holding the identifier the stream watches. Which one that is comes from the stream: get_stream_schema returns it as `entities_field`.",info:"Must be the identifier type the stream's source accepts โ get_stream_schema returns it as `entities_field`. It decides WHO is watched and nothing else: changes land as new rows in whichever sheets subscribe to the stream, never back onto this row. A blank or malformed value simply enrolls nobody."}),contract:gz(),output_fields:I(r.object({[yz.name]:D({fieldName:yz.name})}))})}),xz={"stream-enroll-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},mte=class extends V{pipeId=vz;payload;payloadSchema=bz;billableOperations=xz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`stream-enroll-v1-pipe0`)}getInputRequirement(){return _z(this.payload.config)}getRawOutputFields(){return{[yz.name]:this.catalogOutput(yz)}}getConnectionsRequirements(){return[mz]}},hte=bz,gte={pipeId:vz,basePipe:W(vz),label:`Enroll in stream`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Add this row's identifier to a stream's watch list, so changes about that person arrive as updates. Free; the stream must already exist.`,guide:"Puts a row on a stream's watch list. Point entity_field at the column holding the identifier the stream's source accepts. Which identifier that is depends on the stream, so read it off `entities_field` from get_stream_schema rather than guessing. Enrolling decides WHO the stream watches and nothing more: when the provider reports a change it lands as a NEW ROW in every sheet subscribed to that stream, with the stream's own columns โ it is never written back onto this row, and the sheet you enroll from does not have to be a sheet you subscribe. A value the source cannot watch is rejected per row with the reason in the cell, so a mismatch shows up on the first run rather than as permanent silence. Enrolling is FREE and watching is free: you are billed only when the provider reports an actual change, so putting 5,000 people on a watch list who never move costs nothing. The stream must exist first โ unlike bucket:claim@1 this cannot create its target, because a stream carries credentials and provider config that do not fit in pipe config. Enrollment is recorded immediately and pushed to the provider on the next sync, within a minute or so, so is_enrolled:true means 'recorded', not 'the provider has it'. Enrollments OUTLIVE the row and the sheet that made them: removing a row does not stop the watch, and paying for it. Use stream:unenroll@1 to stop watching someone.",docPath:G(vz),tags:[H.FIELDS],keywords:[`watch`,`track`,`monitor`,`subscribe`,`signal`,`job change`],billableOperations:xz,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:vz,connector:{strategy:`first`,connections:[]},run_if:null,config:{stream:``,entity_field:{field_name:``},contract:``,output_fields:{is_enrolled:{alias:``,enabled:!0}}}}},Sz=`stream:unenroll@1`,Cz=_(`is_unenrolled`),wz=r.object({pipe_id:r.literal(Sz),connector:S(),run_if:b(),config:r.object({stream:hz(`remove`),entity_field:Zu({label:`Identifier column`,path:`config.entity_field`,groupPath:`config.general`,sectionKey:`general`,required:!0,description:"The column holding the identifier the stream watches โ the same one you enrolled by. get_stream_schema returns it as `entities_field`.",info:`Removal is matched on the identifier's VALUE, not on which row asked for it, so this must be the same identifier the row was enrolled with. Removing a value that was never enrolled is a no-op rather than an error.`}),contract:gz(),output_fields:I(r.object({[Cz.name]:D({fieldName:Cz.name})}))})}),Tz={"stream-unenroll-v1-pipe0":{provider:`pipe0`,allowManagedConnection:!0,credits:{default:0},mode:`always`}},_te=class extends V{pipeId=Sz;payload;payloadSchema=wz;billableOperations=Tz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`stream-unenroll-v1-pipe0`)}getInputRequirement(){return _z(this.payload.config)}getRawOutputFields(){return{[Cz.name]:this.catalogOutput(Cz)}}getConnectionsRequirements(){return[mz]}},vte=wz,yte={pipeId:Sz,basePipe:W(Sz),label:`Remove from stream`,executionMode:`single`,categories:[`actions`,`tools`],lifecycle:null,allowedUserConnectionProviders:[`pipe0`],managedProviders:[],deprecatedProviders:[],description:`Take this row's identifier off a stream's watch list, so it stops being watched and stops costing money. Free.`,guide:`Takes a row OFF a stream's watch list, which is how you stop paying to watch someone. Point entity_field at the same column you enrolled by โ removal is matched on the identifier's value, not on which row asked for it, so it works from any sheet. Removal is EXPLICIT and never inferred: deleting a row, or the whole sheet, leaves the watch running, because an enrollment records an action that happened and must survive the thing that made it. is_unenrolled comes back true once the removal is recorded; the provider is told on the next sync, within a minute or so. It is deliberately NOT the same field stream:enroll@1 writes, because the two pipes almost always sit on the same sheet and one shared column would collide. Removing someone who was never enrolled is a no-op rather than an error`,docPath:G(Sz),tags:[H.FIELDS],keywords:[`unwatch`,`untrack`,`stop`,`unsubscribe`,`remove`,`cancel`],billableOperations:Tz,defaultInputRequirement:null,inputFieldMode:`config`,outputFieldMode:`static`,defaultPayload:{pipe_id:Sz,connector:{strategy:`first`,connections:[]},run_if:null,config:{stream:``,entity_field:{field_name:``},contract:``,output_fields:{is_unenrolled:{alias:``,enabled:!0}}}}},Ez=`template:fill@1`,Dz=_(`template_output`),Oz=r.object({pipe_id:r.literal(Ez),connector:C(),run_if:b(),config:r.object({template:Iu({sectionKey:`general`,path:`config.template`,label:`Template`,placeholder:X(`template`),groupPath:`config.general`,required:!0}),output_fields:I(r.object({[Dz.name]:D({fieldName:Dz.name})}))})}),kz={"template-fill-v1-pipe0":{credits:{default:0},allowManagedConnection:!0,provider:`pipe0`,mode:`always`}},bte=class extends V{pipeId=Ez;payload;payloadSchema=Oz;billableOperations=kz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`pipe0`]}estimateBillableOperations(e){return U(e,`template-fill-v1-pipe0`)}getInputRequirement(){return pm([this.payload.config.template])}getSecretRequirements(){return J([this.payload.config.template])}getConstantRequirements(){return mm([this.payload.config.template])}getRawOutputFields(){return{[Dz.name]:this.catalogOutput(Dz)}}getConnectionsRequirements(){return[]}},xte=Oz,Ste={pipeId:Ez,inputFieldMode:`config`,outputFieldMode:`config`,basePipe:W(Ez),label:`Fill a text template`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Replaces template tags like {{ name }} with actual values.`,tags:[H.TEXT],keywords:[`merge`,`personalize`,`liquid`,`placeholder`,`variables`,`mail merge`],docPath:G(Ez),defaultInputRequirement:null,billableOperations:kz,allowedUserConnectionProviders:[],managedProviders:[`pipe0`],deprecatedProviders:[],defaultPayload:{pipe_id:Ez,connector:null,run_if:null,config:{template:``,output_fields:{template_output:{alias:``,enabled:!0}}}}},Az=`website:extract:parallel@1`,jz=_(`website_url`),Mz=_(`parallel_extract_result`),Nz=r.object({pipe_id:r.literal(Az),connector:C(),run_if:b(),config:r.object({objective:pd({sectionKey:`general`,groupPath:`config.extraction`,path:`config.objective`,label:`Objective`,info:`Natural-language description of what to extract. Template tags are not supported.`,guide:`Template tags are not supported.`,rows:5,minLength:10,placeholder:`E.g. When was the company founded and what does it do?`}),input_fields:L(r.object({[jz.name]:T({fieldName:jz.name})})),output_fields:I(r.object({[Mz.name]:D({fieldName:Mz.name})}))})}),Pz=e=>B(K(jz,e)),Fz={"website-extract-parallel-v1-parallel":{allowManagedConnection:!0,provider:`parallel`,credits:{default:.1},mode:`onSuccess`}},Cte=class extends V{pipeId=Az;payload;payloadSchema=Nz;billableOperations=Fz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`parallel`]}estimateBillableOperations(e){return U(e,`website-extract-parallel-v1-parallel`)}getInputRequirement(){return Pz(this.payload.config)}getRawOutputFields(){return{[Mz.name]:this.catalogOutput(Mz,{isPrimaryOutput:!0})}}getConnectionsRequirements(){return[{provider:`parallel`,rateLimitRatio:1,rateLimitOperation:`parallel_extract`,allowManagedConnection:!0}]}},wte=Nz,Tte={pipeId:Az,basePipe:W(Az),label:`Extract`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Extract relevant content from a website using Parallel's Extract API. Returns a flat list of results โ page title, publish date and the excerpts most relevant to your objective.`,tags:[H.SCRAPE],keywords:[`scrape`,`crawl`,`content`,`web`,`research`],docPath:G(Az),billableOperations:Fz,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`parallel`],managedProviders:[`parallel`],deprecatedProviders:[],defaultInputRequirement:Pz(null),defaultPayload:{pipe_id:Az,run_if:null,connector:null,config:{objective:``,input_fields:{website_url:{alias:``}},output_fields:{parallel_extract_result:{alias:``,enabled:!0}}}}},Iz=`website:markdown:parallel@1`,Lz=_(`website_url`),Rz=_(`website_markdown`),zz=r.object({pipe_id:r.literal(Iz),connector:C(),run_if:b(),config:r.object({input_fields:L(r.object({[Lz.name]:T({fieldName:Lz.name})})),output_fields:I(r.object({[Rz.name]:D({fieldName:Rz.name})}))})}),Bz=e=>B(K(Lz,e)),Vz={"website-markdown-parallel-v1-parallel":{allowManagedConnection:!0,provider:`parallel`,credits:{default:.1,level1:{credits:.05,weight:1}},mode:`onSuccess`}},Ete=class extends V{pipeId=Iz;payload;payloadSchema=zz;billableOperations=Vz;constructor(e){super(),this.payload=this.validatePayload(e)}getProviderNames(){return[`parallel`]}estimateBillableOperations(e){return U(e,`website-markdown-parallel-v1-parallel`)}getInputRequirement(){return Bz(this.payload.config)}getRawOutputFields(){return{[Rz.name]:this.catalogOutput(Rz,{isPrimaryOutput:!0})}}getConnectionsRequirements(){return[{provider:`parallel`,rateLimitRatio:1,rateLimitOperation:`parallel_extract`,allowManagedConnection:!0}]}},Dte=zz,Ote={pipeId:Iz,basePipe:W(Iz),label:`Page to markdown`,executionMode:`single`,categories:[`tools`],lifecycle:null,description:`Fetch one web page and return its full content as clean markdown. Handles JavaScript-rendered pages and PDFs.`,guide:`One URL per row in, one markdown document out. For a cell holding a LIST of URLs, expand it into rows first (row:expandappend:sheet@1) and run this pipe per row. Output is page CONTENT as markdown โ not raw HTML, and not a reliable link inventory (nav/footer links may be dropped on JS-heavy sites). To answer a question about a page instead of storing the whole page, use website:extract:parallel@1.`,tags:[H.SCRAPE],keywords:[`scrape`,`crawl`,`content`,`web`,`html`,`url`,`firecrawl`],docPath:G(Iz),billableOperations:Vz,inputFieldMode:`static`,outputFieldMode:`static`,allowedUserConnectionProviders:[`parallel`],managedProviders:[`parallel`],deprecatedProviders:[],defaultInputRequirement:Bz(null),defaultPayload:{pipe_id:Iz,run_if:null,connector:null,config:{input_fields:{website_url:{alias:``}},output_fields:{website_markdown:{alias:``,enabled:!0}}}}},Hz=`companies:profiles:crustdata@1.companies:profiles:crustdata@2.companies:profiles:crustdata@3.companies:profiles:amplemarket@1.companies:profiles:amplemarket@2.jobs:crustdata@1.people:profiles:crustdata@1.people:profiles:crustdata@2.people:profiles:crustdata@3.people:profiles:amplemarket@1.people:profiles:amplemarket@2.companies:entitysearch:parallel@1.people:entitysearch:parallel@1.research:agent@1.people:eventguests:luma@1.people:channelmembers:slack@1.events:googlecalendar@1.sheet:rows@1.bucket:entries@1.query:postgres@1.query:databricks@1.posts:content:crustdata@1.posts:x@1.people:followers:x@1.people:followers:self:x@1.contacts:hubspot@1.companies:hubspot@1.deals:hubspot@1.owners:hubspot@1.contacts:salesforce@1.leads:salesforce@1.accounts:salesforce@1.opportunities:salesforce@1.users:salesforce@1.query:salesforce@1.people:attio@1.companies:attio@1.deals:attio@1.records:attio@1.entries:attio@1.query:attio@1.users:attio@1`.split(`.`),Uz=r.enum(Hz);function kte(e,t){let n={name:e,config:t};return Vt.hashObject(n)}var Z=class{estimateBillableOperations(e){let{cost:t,billableOperation:n}=this.billing;return!t.allowManagedConnection&&!t.userConnectionCredits?[]:[{billableOperation:n,quantity:t.mode===`per_result`?e.count:t.mode===`per_page`?e.count/100:1}]}validatePayload(e){try{return this.schema.parse(e)}catch(e){throw e instanceof n?Error(JSON.stringify(r.prettifyError(e))):e}}catalogOutput(e){return{name:e.name,enabled:!!this.payload.config?.output_fields?.[e.name].enabled,type:e.type,format:e.format,resolvedName:this.payload.config?.output_fields?.[e.name]?.alias||e.name,description:e.description,jsonMeta:e.jsonMeta,label:e.label,isCatalogFIeld:!0,order:`order`in e?e.order:void 0}}getOutputFields(){let e={};for(let[t,n]of Object.entries(this.getRawOutputFields()))n.enabled&&(e[t]=n);return e}getStaticFieldDefinitions(){let e={};for(let t of Object.values(this.getOutputFields()))e[t.resolvedName]={type:t.type,label:t.label??null,format:t.format??null,json_metadata:null};return e}getDedupConfig(){return{match:`any`,fields:[]}}async getAgentContext(e){return null}getHashKey(){return kte(this.searchId,this.payload)}};function Q(e){return e.split(`@`)[0]}function $(e){return`/docs/search-catalog/${Q(e)}/${e.split(`@`)[1]}`}const Wz=()=>wd({path:`config.custom_properties`,groupPath:`config.general`,sectionKey:`general`,label:`Custom fields`,placeholder:`Lead_Score__c`,info:"Field API names added to the record JSON under `custom_properties` โ custom fields included; dotted parent paths like `Account.Industry` work (standard-set names are already top-level).",guide:"Field API names added to the record JSON under `custom_properties` โ custom fields included; standard-set names are already top-level. Dotted parent paths like `Account.Industry` work."}),Gz=e=>xd({path:`config.filters`,groupPath:`config.general`,sectionKey:`general`,label:`Field filters`,fieldNamePlaceholder:e,info:`Rows filter on any Salesforce field by API name โ custom fields and dotted parent paths included. Picklist values are the org's API values (case-sensitive); date values accept ISO dates or SOQL literals like LAST_N_DAYS:30.`,guide:`Filter on any Salesforce field by API name โ custom fields and dotted parent paths included. Picklist values are the org's API values (case-sensitive). Date values accept ISO dates or SOQL literals like LAST_N_DAYS:30.`}),Kz=e=>Fd({path:`config.list_view`,groupPath:`config.general`,sectionKey:`general`,label:`List view`,required:!1,info:`Run one of the org's own list views instead of filters โ the view's conditions (including 'My โฆ' scoping) apply server-side. Cannot be combined with filters or shortcuts.`,enabledIf:v(`salesforce`),optionsDef:dp(e)}),qz=()=>Fd({path:`config.owner`,groupPath:`config.general`,sectionKey:`general`,label:`Owner`,required:!1,info:``,enabledIf:v(`salesforce`),optionsDef:op}),Jz=[{label:`Any time`,value:``},{label:`Today`,value:`l24h`},{label:`Last 2 days`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}],Yz=()=>Pd({required:!1,path:`config.created_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Created at`,description:``,options:Jz}).default(``),Xz=()=>Pd({required:!1,path:`config.modified_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Last modified`,description:``,options:Jz}).default(``),Zz=()=>P({path:`config.limit`,min:1,max:500,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Rows per page.`}).default(100),Qz=()=>j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),$z=e=>t=>{let n=t.value;if(!fp(n.list_view))return;let r=[];n.filters&&r.push(`filters`);for(let t of e){let e=n[t];if(!(e==null||e===``||e===!1)){if(typeof e==`object`&&!Array.isArray(e)){let t=e;if((t.include?.length??0)===0&&(t.exclude?.length??0)===0&&t.min==null&&t.max==null)continue}r.push(t)}}r.length>0&&t.issues.push({code:`custom`,input:n.list_view,message:`A list view already carries its own conditions โ clear ${r.join(`, `)} or clear the list view.`,path:[`list_view`]})},eB=`accounts:salesforce@1`,tB=_(`salesforce_record_id`),nB=_(`company_name`),rB=_(`company_domain`),iB=_(`salesforce_account_match`),aB=r.object({search_id:r.literal(eB),connector:zu(),config:r.object({custom_properties:Wz(),filters:Gz(`Industry`),list_view:Kz(`Account`),domains:k({path:`config.domains`,groupPath:`config.general`,sectionKey:`general`,label:`Domains`,placeholder:`acme.com`,info:`Matches exact spellings of the Website URL (Salesforce has no domain field).`,guide:`Matches exact spellings of the Website URL โ Salesforce has no domain field.`}),industry:Fd({path:`config.industry`,groupPath:`config.general`,sectionKey:`general`,label:`Industry`,required:!1,info:`The org's actual Industry picklist values.`,enabledIf:v(`salesforce`),optionsDef:up(`Account`,`Industry`)}),owner:qz(),created_within:Yz(),modified_within:Xz(),limit:Zz(),cursor:Qz(),output_fields:I(r.object({[tB.name]:A({fieldName:tB.name}),[nB.name]:A({fieldName:nB.name}),[rB.name]:A({fieldName:rB.name}),[iB.name]:A({fieldName:iB.name})}))}).check(e=>$z([`domains`,`industry`,`owner`,`created_within`,`modified_within`])(e))}),oB={allowManagedConnection:!1,mode:null,credits:null,info:`Salesforce searches are free โ you bring your own Salesforce connection.`},sB=`accounts-salesforce-v1`,cB=class extends Z{billing={billableOperation:sB,cost:oB};searchId=eB;schema=aB;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[tB.name]:this.catalogOutput(tB),[nB.name]:this.catalogOutput(nB),[rB.name]:this.catalogOutput(rB),[iB.name]:this.catalogOutput(iB)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitOperation:`salesforce_api`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`salesforce_record_id`}]}}async getAgentContext(e){return mp(e,{objects:[`Account`],includeListViewsFor:[`Account`]})}},lB=aB,uB={searchId:eB,billableOperation:sB,baseSearch:Q(eB),outputFieldMode:`static`,paginationType:`cursor`,label:`Salesforce accounts`,categories:[`companies`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List accounts from your Salesforce org: identity columns (id, name, domain) plus a JSON record with the standard field set and any custom fields you pick. Filter with field conditions or run one of the org's own list views.`,tags:[H.WEBSITE,H.NEW],keywords:[`crm`,`sfdc`,`company`,`list`,`records`,`import`,`organization`],docPath:$(eB),guide:"Call get_provider_context first for the org's field API names and picklist values. The domain column is derived from the Website URL (Salesforce has no domain field) โ accounts with exotic Website formats yield null. Person accounts (B2C orgs) appear as accounts here. To find stale accounts, filter on `LastActivityDate` (e.g. `LastActivityDate < LAST_N_DAYS:90` โ closed tasks + events, not literal touches). `list_view` runs the org's own segmentation (XOR with filters/shortcuts). Results page by record id; rows the connected user cannot see are silently absent.",cost:oB,provider:`salesforce`,defaultPayload:{search_id:eB,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,list_view:``,domains:{include:[],exclude:[]},industry:``,owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{salesforce_record_id:{enabled:!0,alias:``},company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},salesforce_account_match:{enabled:!0,alias:``}}}}},dB=`bucket:entries@1`,fB=r.object({search_id:r.literal(dB),connector:zu(),config:r.object({bucket:j({path:`config.bucket`,groupPath:`config.general`,inputType:`text`,label:`Bucket`,sectionKey:`general`,description:`The bucket's org-unique slug. Its entries (one row each) are returned.`}),limit:P({path:`config.limit`,min:1,max:2e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of entries per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),include_metadata:jd({path:`config.include_metadata`,groupPath:`config.general`,sectionKey:`general`,label:`Include metadata`,description:`Provenance (source sheet/row/run) and expiry as extra columns.`,defaultValue:!1})})}),pB={allowManagedConnection:!0,mode:`per_search`,credits:{default:0},info:`Reading your own bucket is free.`},mB=`bucket-entries-v1-pipe0`,hB=class extends Z{billing={billableOperation:mB,cost:pB};searchId=dB;schema=fB;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{}}getConnectionsRequirements(){return[{provider:`pipe0`,rateLimitOperation:`pipe0_api_operation`,rateLimitRatio:1,allowManagedConnection:!0}]}},gB=fB,_B={searchId:dB,billableOperation:mB,baseSearch:Q(dB),outputFieldMode:`dynamic`,paginationType:`cursor`,label:`Read bucket entries`,categories:[`data`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`List the entries in a bucket โ one row per entry, with its identifying field values (and counter number / expiry).`,tags:[H.FIELDS,H.NEW],keywords:[`claims`,`counter`,`suppression`,`list`,`lookup`,`rows`],docPath:$(dB),cost:pB,provider:`pipe0`,defaultPayload:{search_id:dB,connector:{strategy:`first`,connections:[]},config:{bucket:``,limit:100,cursor:``,include_metadata:!1}}},vB=()=>P({path:`config.limit`,min:1,max:500,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Rows per page`}).default(100),yB=()=>P({path:`config.page_number`,min:1,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page`,description:`1-based page index (offset pagination; Attio reports no total count)`}).nullable().default(1),bB=(e,t)=>wd({path:`config.custom_properties`,groupPath:`config.general`,sectionKey:`general`,label:`Custom attributes`,placeholder:e,info:`Added to the record JSON alongside the standard set โ attribute api_slugs, custom attributes included.`,guide:`Attribute api_slugs added to the record JSON alongside the standard set โ custom attributes included.`,optionsDef:t}),xB=e=>xd({path:`config.filters`,groupPath:`config.general`,sectionKey:`general`,label:`Attribute filters`,fieldNamePlaceholder:e,info:"Rows filter on any Attio attribute by api_slug โ custom attributes included; target value sub-properties as `slug.sub_property` (e.g. `domains.root_domain`). Select/status values are workspace-defined TITLES and support equality only. Operator support varies PER ATTRIBUTE TYPE and is enforced by Attio, not this schema (a 400 names the allowed set) โ $eq works everywhere; prefer it unless you know the attribute accepts more.",guide:"Filter on any Attio attribute by api_slug โ custom attributes included. Target value sub-properties as `slug.sub_property` (e.g. `domains.root_domain`). Select/status values are workspace-defined TITLES and support equality only. Operator support varies PER ATTRIBUTE TYPE and is enforced by Attio, not this schema โ a 400 names the allowed set. $eq works everywhere; prefer it unless you know the attribute accepts more."}),SB=e=>Fd({path:`config.saved_view`,groupPath:`config.general`,sectionKey:`general`,label:`Saved view`,required:!1,info:`Filter with one of this workspace's saved Attio views instead of the fields above โ views and filters are mutually exclusive.`,optionsDef:e}),CB=()=>Pd({required:!1,path:`config.created_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Created at`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``);function wB(e,t){let n=e.value,r=Array.isArray(n.saved_view)?n.saved_view[0]:n.saved_view;if(!r)return;let i=[];(n.filters?.conditions?.length??0)>0&&i.push(`filters`);for(let e of t){let t=n[e];(Array.isArray(t)?t.length>0:typeof t==`object`&&t?Object.values(t).some(e=>Array.isArray(e)?e.length>0:!!e):t)&&i.push(e)}i.length>0&&e.issues.push({code:`custom`,input:r,path:[`saved_view`],message:`A saved view replaces the filter fields โ clear ${i.join(`, `)} or clear the saved view (Attio rejects the combination).`})}const TB=`companies:attio@1`,EB=_(`attio_record_id`),DB=_(`company_name`),OB=_(`company_domain`),kB=_(`attio_company_match`),AB=r.object({search_id:r.literal(TB),connector:zu(),config:r.object({custom_properties:bB(`categories`,Hp({target:`objects`,identifier:`companies`})),filters:xB(`categories`),domains:k({path:`config.domains`,groupPath:`config.general`,sectionKey:`general`,label:`Domains`,placeholder:`acme.com`}),domain_match:Pd({required:!1,path:`config.domain_match`,groupPath:`config.general`,sectionKey:`general`,label:`Domain matching`,description:`Exact domain values are unique per company; root domain also matches subdomain records (app.acme.com).`,options:[{label:`Exact domain`,value:`domain`},{label:`Root domain`,value:`root_domain`}]}).default(`domain`),saved_view:SB(Rp({target:`objects`,identifier:`companies`})),created_within:CB(),limit:vB(),page_number:yB(),output_fields:I(r.object({[EB.name]:A({fieldName:EB.name}),[DB.name]:A({fieldName:DB.name}),[OB.name]:A({fieldName:OB.name}),[kB.name]:A({fieldName:kB.name})}))}).check(e=>wB(e,[`domains`,`created_within`]))}),jB={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own Attio workspace is free.`},MB=`companies-attio-v1`,NB=class extends Z{billing={billableOperation:MB,cost:jB};searchId=TB;schema=AB;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[EB.name]:this.catalogOutput(EB),[DB.name]:this.catalogOutput(DB),[OB.name]:this.catalogOutput(OB),[kB.name]:this.catalogOutput(kB)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_query`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`attio_record_id`}]}}async getAgentContext(e){return Wp(e,{objects:[`companies`],includeViewsFor:[`companies`]})}},PB=AB,FB={searchId:TB,billableOperation:MB,baseSearch:Q(TB),outputFieldMode:`static`,paginationType:`page_number`,label:`Attio companies`,categories:[`companies`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List companies from your Attio workspace: identity columns (id, name, domain) plus a JSON record with the standard attribute set and any custom attributes you pick.`,tags:[H.NEW],keywords:[`crm`,`list`,`records`,`import`,`account`,`workspace`],docPath:$(TB),guide:`Call get_provider_context first for this workspace's attribute slugs and enumeration titles โ use api_slugs verbatim. Standard attributes become typed columns; everything else rides in the company JSON โ expand it or chain json:extract downstream. The domains shortcut matches exact domains by default (unique per company) or root domains (subdomains too); a saved view replaces the filter fields entirely. For staleness, filter or sort on last_interaction (targets its interacted_at timestamp) โ Attio's read-only communication-intelligence signal, auto-populated from members' synced email/calendar. Attio reports no total count โ page until a short page.`,cost:jB,provider:`attio`,defaultPayload:{search_id:TB,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,domains:{include:[],exclude:[]},domain_match:`domain`,saved_view:``,created_within:``,limit:100,page_number:1,output_fields:{attio_record_id:{enabled:!0,alias:``},company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},attio_company_match:{enabled:!0,alias:``}}}}},IB=`companies:entitysearch:parallel@1`,LB=_(`company_name`),RB=_(`company_domain`),zB=_(`company_description`),BB=_(`company_profile_url`),VB=_(`parallel_company_entity_match`),HB=r.object({search_id:r.literal(IB),connector:Bu(),config:r.object({objective:Nd({path:`config.objective`,sectionKey:`general`,groupPath:`config.general`,label:`Objective`,rows:4,minLength:10,placeholder:`AI startups in Europe that raised a Series A in 2024`,description:`Plain-text natural-language description of the companies to find.`}),limit:P({path:`config.limit`,min:5,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of entities to return (5โ1000).`}).default(100),output_fields:I(r.object({[LB.name]:A({fieldName:LB.name}),[RB.name]:A({fieldName:RB.name}),[zB.name]:A({fieldName:zB.name}),[BB.name]:A({fieldName:BB.name}),[VB.name]:A({fieldName:VB.name})}))})}),UB={match:`any`,fields:[{fieldName:`company_profile_url`}]},WB={allowManagedConnection:!0,mode:`per_page`,credits:{default:.5},info:`1 page = 100 results; billed per 100 results returned (e.g. 100 results = 1 page, 1,000 results = 10 pages). A search returns up to your selected limit in a single request.`},GB=`companies-entitysearch-parallel-v1`,KB=class extends Z{billing={billableOperation:GB,cost:WB};searchId=IB;schema=HB;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[LB.name]:this.catalogOutput(LB),[RB.name]:this.catalogOutput(RB),[zB.name]:this.catalogOutput(zB),[BB.name]:this.catalogOutput(BB),[VB.name]:this.catalogOutput(VB)}}getConnectionsRequirements(){return[{provider:`parallel`,rateLimitOperation:`parallel_entity_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return UB}},qB=HB,JB={searchId:IB,billableOperation:GB,baseSearch:Q(IB),label:`Company search (AI)`,categories:[`companies`],paginationType:`page_number`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Natural-language company search powered by Parallel Entity Search โ for asks static filters can't express.`,tags:[H.COMPANY_PROFILES],keywords:[`find companies`,`accounts`,`prospect`,`natural language`,`organizations`],docPath:$(IB),guide:`Best for asks the static filters of the amplemarket or crustdata company searches can't express โ check their schemas first. Returns sparse records (identity basics plus a match rationale) that need further enrichment, where the filter-based datasets return full profiles. When filters get close, prefer a filter-based search that already returns the criterion as its own rows; narrow by enrichment only for what no search expresses.`,cost:WB,provider:`parallel`,defaultPayload:{search_id:IB,connector:null,config:{objective:``,limit:100,output_fields:{company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},company_description:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},parallel_company_entity_match:{enabled:!1,alias:``}}}}},YB=`companies:hubspot@1`,XB=_(`hubspot_object_id`),ZB=_(`company_name`),QB=_(`company_domain`),$B=_(`hubspot_company_match`),eV=r.object({search_id:r.literal(YB),connector:zu(),config:r.object({query:j({path:`config.query`,groupPath:`config.general`,inputType:`text`,label:`Search text`,sectionKey:`general`,info:`Free-text search over HubSpot's default searchable company properties (name, domain, website, phone).`,guide:`Free-text search over HubSpot's default searchable company properties: name, domain, website, phone.`}).nullable(),custom_properties:wd({path:`config.custom_properties`,groupPath:`config.general`,sectionKey:`general`,label:`Custom properties`,placeholder:`account_tier`,info:"Added to the company JSON under `custom_properties` โ internal names, custom properties included (standard-set names are already top-level).",guide:"Added to the company JSON under `custom_properties` โ internal names, custom properties included. Standard-set names are already top-level."}),filters:xd({path:`config.filters`,groupPath:`config.general`,sectionKey:`general`,label:`Property filters`,fieldNamePlaceholder:`industry`,info:`Rows filter on any HubSpot property by internal name โ including custom properties. Enumeration values are the portal's internal option values (case-sensitive).`,guide:`Filter on any HubSpot property by internal name โ custom properties included. Enumeration values are the portal's internal option values (case-sensitive).`}),domains:k({path:`config.domains`,groupPath:`config.general`,sectionKey:`general`,label:`Domains`,placeholder:`acme.com`}),owner:Fd({path:`config.owner`,groupPath:`config.general`,sectionKey:`general`,label:`Owner`,required:!1,info:``,enabledIf:v(`hubspot`),optionsDef:Cm}),created_within:Pd({required:!1,path:`config.created_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Created at`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``),modified_within:Pd({required:!1,path:`config.modified_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Last modified`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``),limit:P({path:`config.limit`,min:1,max:200,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Rows per page (HubSpot search caps pages at 200 and total results at 10,000).`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[XB.name]:A({fieldName:XB.name}),[ZB.name]:A({fieldName:ZB.name}),[QB.name]:A({fieldName:QB.name}),[$B.name]:A({fieldName:$B.name})}))})}),tV={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own HubSpot portal is free.`},nV=`companies-hubspot-v1`,rV=class extends Z{billing={billableOperation:nV,cost:tV};searchId=YB;schema=eV;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[XB.name]:this.catalogOutput(XB),[ZB.name]:this.catalogOutput(ZB),[QB.name]:this.catalogOutput(QB),[$B.name]:this.catalogOutput($B)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitOperation:`hubspot_crm_search`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`hubspot_object_id`}]}}async getAgentContext(e){return Em(e,{objectTypes:[[`companies`,`0-2`]]})}},iV=eV,aV={searchId:YB,billableOperation:nV,baseSearch:Q(YB),outputFieldMode:`static`,paginationType:`cursor`,label:`HubSpot companies`,categories:[`companies`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List companies from your HubSpot portal: identity columns (id, name, domain) plus a JSON record with the standard property set and any custom properties you pick.`,tags:[H.WEBSITE,H.NEW],keywords:[`crm`,`lookup`,`list`,`records`,`import`,`account`],docPath:$(YB),guide:"Call get_provider_context first for this portal's property names and enumeration option values โ use internal names verbatim. Domain include/exclude matches the primary `domain` property (lowercased). Newly created records lag search indexing by a few moments; archived records never appear. Total results cap at 10,000 per query.",cost:tV,provider:`hubspot`,defaultPayload:{search_id:YB,connector:{strategy:`first`,connections:[]},config:{query:``,custom_properties:[],filters:null,domains:{include:[],exclude:[]},owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{hubspot_object_id:{enabled:!0,alias:``},company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},hubspot_company_match:{enabled:!0,alias:``}}}}};function oV(e){let t=!0,n=e=>{if(t!==!1&&typeof e==`object`&&e){Array.isArray(e)&&e.length>0&&(t=!1);for(let r of Object.values(e))typeof r!=`object`&&r!=null&&r!==``&&(t=!1),typeof r==`object`&&r&&n(r)}};return n(e),t}const sV=`companies:profiles:amplemarket@2`,cV=_(`company_name`),lV=_(`company_domain`),uV=_(`company_description`),dV=_(`company_profile_url`),fV=_(`amplemarket_company_match`),pV=r.object({search_id:r.literal(sV),connector:Bu(),config:r.object({limit:P({label:`Limit`,description:`Max number of search results`,path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`}).default(100),page_number:P({path:`config.page_number`,groupPath:`config.pagination`,label:`Page number`,min:1,sectionKey:`pagination`,description:``}).nullish(),output_fields:I(r.object({[cV.name]:A({fieldName:cV.name}),[lV.name]:A({fieldName:lV.name}),[uV.name]:A({fieldName:uV.name}),[dV.name]:A({fieldName:dV.name}),[fV.name]:A({fieldName:fV.name})})),filters:r.object({hq_locations:N({path:`config.filters.hq_locations`,sectionKey:`config.filters`,label:`HQ locations`,description:``,placeholder:X(`location`),groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default({include:[],exclude:[]}),company_names:k({sectionKey:`config.filters`,path:`config.filters.company_names`,label:`Company names`,description:``,placeholder:X(`company_name`),groupPath:`config.filters.categories`,suggestionsDef:g(`company.names`)}).default({include:[],exclude:[]}),company_domains:k({sectionKey:`config.filters`,path:`config.filters.company_domains`,label:`Company domains`,description:``,placeholder:X(`company_domain`),groupPath:`config.filters.categories`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),company_profile_urls:k({sectionKey:`config.filters`,path:`config.filters.company_profile_urls`,label:`Company LinkedIn URLs`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),company_types:M({sectionKey:`config.filters`,path:`config.filters.company_types`,disableSearch:!1,label:`Company Type`,description:``,groupPath:`config.filters.categories`,options:h(`company.types.amplemarket`),required:!1}).default([]),investors:Id({sectionKey:`config.filters`,path:`config.filters.investors`,label:`Investor names`,optionsDef:g(`company.investors.crunchbase`),description:`A list of company investor names`,placeholder:X(`investor`),groupPath:`config.filters.investors`,disableSearch:!1,required:!1}).default([]),company_industries:Dd({sectionKey:`config.filters`,path:`config.filters.company_industries`,optionsDef:Xe(`company.industries.amplemarket`),disableSearch:!1,label:`Industries`,description:``,placeholder:X(`industry`),groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),customer_types:M({sectionKey:`config.filters`,path:`config.filters.customer_types`,options:h(`company.customer_type.amplemarket`),placeholder:`B2B, B2C`,required:!1,disableSearch:!0,label:`Customer Types`,description:``,groupPath:`config.filters.industry`}).default([]),keywords:k({sectionKey:`config.filters`,path:`config.filters.keywords`,label:`Keywords`,description:``,groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),revenue_groups:M({path:`config.filters.revenue_groups`,sectionKey:`config.filters`,label:`Revenue groups`,description:``,disableSearch:!0,options:h(`company.revenue.amplemarket`),required:!1,groupPath:`config.filters.financials`}).default([]),founded_year:Ed({path:`config.filters.founded_year`,sectionKey:`config.filters`,label:`Founded year`,groupPath:`config.filters.general`,min:0,max:2040,description:``}).default({min:null,max:null}),open_position_titles:O({path:`config.filters.open_position_titles`,sectionKey:`config.filters`,label:`Job openings for titles`,groupPath:`config.filters.job_openings`,description:``,placeholder:X(`title`),suggestionsDef:g(`person.job_titles`)}),headcount:M({sectionKey:`config.filters`,path:`config.filters.headcount`,disableSearch:!1,options:h(`company.headcount.amplemarket`),label:`Company sizes`,required:!1,description:``,groupPath:`config.filters.company_size`}).default([]),headcount_growth_l6m_in_percent:Ed({path:`config.filters.headcount_growth_l6m_in_percent`,sectionKey:`config.filters`,label:`Headcount growth over last 6 months (in %)`,groupPath:`config.filters.company_size`,description:``,max:1e4,min:0}).default({min:null,max:null})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),mV={match:`any`,fields:[{fieldName:`company_profile_url`}]},hV={allowManagedConnection:!0,mode:`per_page`,credits:{default:2}},gV=`companies-profiles-amplemarket-v2`,_V=class extends Z{billing={billableOperation:gV,cost:hV};searchId=sV;schema=pV;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[cV.name]:this.catalogOutput(cV),[lV.name]:this.catalogOutput(lV),[uV.name]:this.catalogOutput(uV),[dV.name]:this.catalogOutput(dV),[fV.name]:this.catalogOutput(fV)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitOperation:`amplemarket_company_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return mV}},vV=pV,yV={searchId:sV,billableOperation:gV,baseSearch:Q(`companies:profiles:amplemarket@2`),label:`Company search`,categories:[`companies`],paginationType:`page_number`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Filter-based company search on Amplemarket's dataset โ precise firmographic filters.`,tags:[H.COMPANY_PROFILES],keywords:[`accounts`,`prospect`,`find companies`,`organizations`,`firmographic`],docPath:$(sV),guide:`The most precise of the three prospecting datasets โ prefer it when its filters express the ask exactly. If a needed criterion is missing here, check the crustdata search's wider filter set before falling back to the natural-language parallel search.`,cost:hV,provider:`amplemarket`,defaultPayload:{search_id:sV,connector:null,config:{limit:100,page_number:1,output_fields:{company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},company_description:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},amplemarket_company_match:{enabled:!0,alias:``}},filters:{company_industries:{include:[],exclude:[]},company_names:{include:[],exclude:[]},company_profile_urls:{include:[],exclude:[]},company_types:[],company_domains:{include:[],exclude:[]},customer_types:[],headcount_growth_l6m_in_percent:{min:null,max:null},founded_year:{min:null,max:null},revenue_groups:[],investors:[],keywords:{include:[],exclude:[]},open_position_titles:[],headcount:[],hq_locations:{include:[],exclude:[]}}}}},bV=`companies:profiles:crustdata@3`,xV=[{label:`Any time`,value:``},{label:`Last month`,value:`l1m`},{label:`Last 3 months`,value:`l3m`},{label:`Last 6 months`,value:`l6m`},{label:`Last 12 months`,value:`l12m`},{label:`Last 2 years`,value:`l24m`}],SV=[{label:`Any time`,value:``},{label:`Last 12 months`,value:`l12m`},{label:`Last 2 years`,value:`l24m`},{label:`Last 5 years`,value:`l60m`}],CV=_(`company_name`),wV=_(`company_domain`),TV=_(`company_profile_url`),EV=_(`crustdata_company_match_v2`),DV=r.object({search_id:r.literal(bV),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of search results per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[CV.name]:A({fieldName:CV.name}),[wV.name]:A({fieldName:wV.name}),[TV.name]:A({fieldName:TV.name}),[EV.name]:A({fieldName:EV.name})})),filters:r.object({company_names:k({path:`config.filters.company_names`,sectionKey:`config.filters`,label:`Company name`,description:``,placeholder:X(`company_name`),maxItems:1e3,groupPath:`config.filters.company`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),company_domains:k({path:`config.filters.company_domains`,sectionKey:`config.filters`,label:`Company domain`,description:``,placeholder:X(`company_domain`),maxItems:1e3,groupPath:`config.filters.company`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),company_profile_urls:k({path:`config.filters.company_profile_urls`,sectionKey:`config.filters`,label:`Company LinkedIn URL`,description:``,placeholder:`https://linkedin.com/company/...`,maxItems:1e3,groupPath:`config.filters.company`}).default({include:[],exclude:[]}),company_types:M({path:`config.filters.company_types`,sectionKey:`config.filters`,label:`Company type`,description:``,placeholder:`Public, Private, ...`,disableSearch:!0,required:!1,options:h(`company.types.crustdata`),groupPath:`config.filters.company`}).default([]),year_founded:kd({path:`config.filters.year_founded`,sectionKey:`config.filters`,label:`Year founded`,description:``,legend:`e.g. 2018 - 2024`,min:1e3,max:2100,groupPath:`config.filters.company`}),hq_locations:Id({path:`config.filters.hq_locations`,sectionKey:`config.filters`,label:`HQ location`,description:``,disableSearch:!1,placeholder:X(`location`),required:!1,groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default([]),hq_countries:Dd({path:`config.filters.hq_countries`,sectionKey:`config.filters`,label:`HQ country`,description:``,placeholder:`United States, Germany, ...`,optionsDef:Xe(`location.country_codes`),groupPath:`config.filters.location`}).default({include:[],exclude:[]}),industries:N({path:`config.filters.industries`,sectionKey:`config.filters`,label:`Industry`,description:``,placeholder:X(`industry`),groupPath:`config.filters.industry`,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),categories:N({path:`config.filters.categories`,sectionKey:`config.filters`,label:`Category`,description:``,placeholder:`Artificial Intelligence (AI), SaaS, ...`,groupPath:`config.filters.industry`,optionsDef:g(`company.categories.crustdata`)}).default({include:[],exclude:[]}),specialities_keywords:k({path:`config.filters.specialities_keywords`,sectionKey:`config.filters`,label:`Specialities contain keywords`,description:`Matches the speciality tags a company lists on its profile. Includes match fuzzily; excludes remove exact tags only.`,placeholder:`CRM, Machine Learning, ...`,maxItems:100,groupPath:`config.filters.industry`,suggestionsDef:g(`company.specialties.crustdata`)}).default({include:[],exclude:[]}),headcount_brackets:M({path:`config.filters.headcount_brackets`,sectionKey:`config.filters`,label:`Headcount`,description:``,placeholder:`1-10`,disableSearch:!0,required:!1,options:h(`company.headcount`),groupPath:`config.filters.company_size`}).default([]),engineering_headcount_brackets:M({path:`config.filters.engineering_headcount_brackets`,sectionKey:`config.filters`,label:`Engineering team size`,description:``,placeholder:`11-50`,disableSearch:!0,required:!1,options:h(`company.function_headcount.crustdata`),groupPath:`config.filters.company_size`}).default([]),sales_headcount_brackets:M({path:`config.filters.sales_headcount_brackets`,sectionKey:`config.filters`,label:`Sales team size`,description:``,placeholder:`11-50`,disableSearch:!0,required:!1,options:h(`company.function_headcount.crustdata`),groupPath:`config.filters.company_size`}).default([]),headcount_growth_l6m_in_percent:kd({path:`config.filters.headcount_growth_l6m_in_percent`,sectionKey:`config.filters`,label:`Headcount growth over last 6 months in percent`,description:`Negative values match shrinking companies.`,legend:`e.g. 15 - 200`,min:-100,max:1e5,groupPath:`config.filters.company_size`}),revenue_in_usd:kd({path:`config.filters.revenue_in_usd`,sectionKey:`config.filters`,label:`Estimated annual revenue (USD)`,description:``,legend:`1k - 10B`,min:1e3,max:1e10,groupPath:`config.filters.financials`}),last_funding_round_types:M({path:`config.filters.last_funding_round_types`,sectionKey:`config.filters`,label:`Last funding round`,description:``,placeholder:`Series A`,disableSearch:!0,required:!1,options:h(`company.last_funding_round.crustdata`),groupPath:`config.filters.financials`}).default([]),last_funding_within:Pd({path:`config.filters.last_funding_within`,sectionKey:`config.filters`,label:`Last funding raised within`,description:`Only companies whose latest funding round closed within this time window.`,placeholder:`Last month, last year, ...`,options:xV,required:!1,defaultValue:``,groupPath:`config.filters.financials`}).default(``),last_funding_amount_in_usd:kd({path:`config.filters.last_funding_amount_in_usd`,sectionKey:`config.filters`,label:`Last funding amount (USD)`,description:``,legend:`1k - 10B`,min:1e3,max:1e10,groupPath:`config.filters.financials`}),total_funding_amount_in_usd:kd({path:`config.filters.total_funding_amount_in_usd`,sectionKey:`config.filters`,label:`Total funding (USD)`,description:``,legend:`1k - 10B`,min:1e3,max:1e10,groupPath:`config.filters.financials`}),investors:k({path:`config.filters.investors`,sectionKey:`config.filters`,label:`Investors`,description:`Investor names as Crustdata records them, e.g. "Sequoia Capital".`,placeholder:X(`investor`),maxItems:1e3,groupPath:`config.filters.financials`,suggestionsDef:g(`company.investors.crunchbase`)}).default({include:[],exclude:[]}),is_acquired:Md({path:`config.filters.is_acquired`,sectionKey:`config.filters`,label:`Acquired`,description:``,defaultValue:null,groupPath:`config.filters.status`}),ipo_within:Pd({path:`config.filters.ipo_within`,sectionKey:`config.filters`,label:`IPO within`,description:`Only companies that went public within this time window.`,placeholder:`Last year, last 5 years, ...`,options:SV,required:!1,defaultValue:``,groupPath:`config.filters.status`}).default(``),markets:Dd({path:`config.filters.markets`,sectionKey:`config.filters`,label:`Stock market`,description:``,placeholder:`NASDAQ, NYSE, ...`,optionsDef:Xe(`company.stock_exchanges.crustdata`),groupPath:`config.filters.status`}).default({include:[],exclude:[]}),follower_count_brackets:M({path:`config.filters.follower_count_brackets`,sectionKey:`config.filters`,label:`Number of LinkedIn followers`,description:``,placeholder:`1-500`,disableSearch:!0,required:!1,options:h(`company.followers.crustdata`),groupPath:`config.filters.web_presence`}).default([]),follower_growth_l6m_in_percent:kd({path:`config.filters.follower_growth_l6m_in_percent`,sectionKey:`config.filters`,label:`LinkedIn follower growth over last 6 months in percent`,description:`Negative values match shrinking audiences.`,legend:`e.g. 20 - 500`,min:-100,max:1e5,groupPath:`config.filters.web_presence`}),technologies:N({path:`config.filters.technologies`,sectionKey:`config.filters`,label:`Technologies used`,description:`Technologies detected on the company's web presence and job postings.`,placeholder:`Salesforce, Cloudflare, ...`,groupPath:`config.filters.technology`,optionsDef:g(`company.technologies.crustdata`)}).default({include:[],exclude:[]}),competitor_domains:O({path:`config.filters.competitor_domains`,sectionKey:`config.filters`,label:`Competitor domain`,description:`Companies Crustdata tracks as competitors of the given domains.`,placeholder:X(`company_domain`),maxItems:100,groupPath:`config.filters.competitors`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),OV={match:`any`,fields:[{fieldName:`company_profile_url`}]},kV={allowManagedConnection:!0,mode:`per_result`,credits:{default:.15,level1:{credits:.07,weight:10}},info:`Billed per company returned.`},AV=`companies-profiles-crustdata-v3`,jV=class extends Z{billing={billableOperation:AV,cost:kV};searchId=bV;schema=DV;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[CV.name]:this.catalogOutput(CV),[wV.name]:this.catalogOutput(wV),[TV.name]:this.catalogOutput(TV),[EV.name]:this.catalogOutput(EV)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_company_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return OV}},MV=DV,NV={searchId:bV,billableOperation:AV,baseSearch:Q(`companies:profiles:crustdata@2`),paginationType:`cursor`,label:`Company search`,categories:[`companies`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Filter-based company search on Crustdata's dataset โ widest filter surface: funding, investors, growth, team composition, technology signals.`,tags:[H.COMPANY_PROFILES],keywords:[`accounts`,`prospect`,`find companies`,`organizations`,`firmographic`,`linkedin`],docPath:$(bV),guide:`The general-purpose default among the prospecting datasets, with the widest filter surface (funding, investors, growth, team composition, technology signals). Rows are companies. When a criterion isn't an exact filter match, check whether another search already returns it as its own rows before enriching for it here; only when none does, search broadly and narrow afterwards โ rather than switching to the natural-language parallel search.`,cost:kV,provider:`crustdata`,defaultPayload:{search_id:bV,connector:null,config:{limit:100,cursor:``,output_fields:{company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},crustdata_company_match_v2:{enabled:!0,alias:``}},filters:{company_names:{include:[],exclude:[]},company_domains:{include:[],exclude:[]},company_profile_urls:{include:[],exclude:[]},company_types:[],year_founded:{from:null,to:null},hq_locations:[],hq_countries:{include:[],exclude:[]},industries:{include:[],exclude:[]},categories:{include:[],exclude:[]},specialities_keywords:{include:[],exclude:[]},headcount_brackets:[],engineering_headcount_brackets:[],sales_headcount_brackets:[],headcount_growth_l6m_in_percent:{from:null,to:null},revenue_in_usd:{from:null,to:null},last_funding_round_types:[],last_funding_within:``,last_funding_amount_in_usd:{from:null,to:null},total_funding_amount_in_usd:{from:null,to:null},investors:{include:[],exclude:[]},is_acquired:null,ipo_within:``,markets:{include:[],exclude:[]},follower_count_brackets:[],follower_growth_l6m_in_percent:{from:null,to:null},technologies:{include:[],exclude:[]},competitor_domains:[]}}}},PV=`contacts:hubspot@1`,FV=_(`hubspot_object_id`),IV=_(`email`),LV=_(`first_name`),RV=_(`last_name`),zV=_(`hubspot_contact_match`),BV=r.object({search_id:r.literal(PV),connector:zu(),config:r.object({query:j({path:`config.query`,groupPath:`config.general`,inputType:`text`,label:`Search text`,sectionKey:`general`,info:`Free-text search over HubSpot's default searchable contact properties (name, email, phone, company).`,guide:`Free-text search over HubSpot's default searchable contact properties: name, email, phone, company.`}).nullable(),custom_properties:wd({path:`config.custom_properties`,groupPath:`config.general`,sectionKey:`general`,label:`Custom properties`,placeholder:`product_signup_date`,info:"Added to the contact JSON under `custom_properties` โ internal names, custom properties included (standard-set names are already top-level)."}),filters:xd({path:`config.filters`,groupPath:`config.general`,sectionKey:`general`,label:`Property filters`,fieldNamePlaceholder:`lifecyclestage`,info:`Rows filter on any HubSpot property by internal name โ including custom properties. Enumeration values are the portal's internal option values (case-sensitive).`}),lifecycle_stage:Fd({path:`config.lifecycle_stage`,groupPath:`config.general`,sectionKey:`general`,label:`Lifecycle stage`,required:!1,info:`This portal's actual stages โ custom stages included.`,enabledIf:v(`hubspot`),optionsDef:wm(`contacts`,`lifecyclestage`)}),owner:Fd({path:`config.owner`,groupPath:`config.general`,sectionKey:`general`,label:`Owner`,required:!1,info:``,enabledIf:v(`hubspot`),optionsDef:Cm}),created_within:Pd({required:!1,path:`config.created_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Created at`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``),modified_within:Pd({required:!1,path:`config.modified_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Last modified`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``),limit:P({path:`config.limit`,min:1,max:200,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Rows per page (HubSpot search caps pages at 200 and total results at 10,000).`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[FV.name]:A({fieldName:FV.name}),[IV.name]:A({fieldName:IV.name}),[LV.name]:A({fieldName:LV.name}),[RV.name]:A({fieldName:RV.name}),[zV.name]:A({fieldName:zV.name})}))})}),VV={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own HubSpot portal is free.`},HV=`contacts-hubspot-v1`,UV=class extends Z{billing={billableOperation:HV,cost:VV};searchId=PV;schema=BV;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[FV.name]:this.catalogOutput(FV),[IV.name]:this.catalogOutput(IV),[LV.name]:this.catalogOutput(LV),[RV.name]:this.catalogOutput(RV),[zV.name]:this.catalogOutput(zV)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitOperation:`hubspot_crm_search`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`hubspot_object_id`}]}}async getAgentContext(e){return Em(e,{objectTypes:[[`contacts`,`0-1`]]})}},WV=BV,GV={searchId:PV,billableOperation:HV,baseSearch:Q(PV),outputFieldMode:`static`,paginationType:`cursor`,label:`HubSpot contacts`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List contacts from your HubSpot portal: identity columns (id, email, name) plus a JSON record with the standard property set and any custom properties you pick.`,tags:[H.EMAIL,H.NEW],keywords:[`crm`,`lookup`,`list`,`records`,`import`,`person`],docPath:$(PV),guide:`Call get_provider_context first for this portal's property names and enumeration option values โ use internal names verbatim. Standard fields become typed columns; the standard set rides flat in the contact JSON and picked custom properties nest under custom_properties โ expand it or chain json:extract downstream. Filters support any property; the lifecycle-stage picker shows the portal's actual stages (custom stages have opaque internal values). Newly created records lag search indexing by a few moments; archived records never appear. Total results cap at 10,000 per query โ narrow with filters or date windows.`,cost:VV,provider:`hubspot`,defaultPayload:{search_id:PV,connector:{strategy:`first`,connections:[]},config:{query:``,custom_properties:[],filters:null,lifecycle_stage:``,owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{hubspot_object_id:{enabled:!0,alias:``},email:{enabled:!0,alias:``},first_name:{enabled:!0,alias:``},last_name:{enabled:!0,alias:``},hubspot_contact_match:{enabled:!0,alias:``}}}}},KV=`contacts:salesforce@1`,qV=_(`salesforce_record_id`),JV=_(`first_name`),YV=_(`last_name`),XV=_(`email`),ZV=_(`salesforce_contact_match`),QV=r.object({search_id:r.literal(KV),connector:zu(),config:r.object({custom_properties:Wz(),filters:Gz(`Title`),list_view:Kz(`Contact`),email_domains:k({path:`config.email_domains`,groupPath:`config.general`,sectionKey:`general`,label:`Email domains`,placeholder:`acme.com`,info:`Matches the email's domain part. Large orgs: domain matching is unindexed โ combine with other filters when it times out.`,guide:`Matches the email's domain part. Domain matching is unindexed in large orgs โ combine with other filters when it times out.`}),has_email:jd({path:`config.has_email`,groupPath:`config.general`,sectionKey:`general`,label:`Has email`,description:``,defaultValue:!1}),owner:qz(),created_within:Yz(),modified_within:Xz(),limit:Zz(),cursor:Qz(),output_fields:I(r.object({[qV.name]:A({fieldName:qV.name}),[JV.name]:A({fieldName:JV.name}),[YV.name]:A({fieldName:YV.name}),[XV.name]:A({fieldName:XV.name}),[ZV.name]:A({fieldName:ZV.name})}))}).check(e=>$z([`email_domains`,`has_email`,`owner`,`created_within`,`modified_within`])(e))}),$V={allowManagedConnection:!1,mode:null,credits:null,info:`Salesforce searches are free โ you bring your own Salesforce connection.`},eH=`contacts-salesforce-v1`,tH=class extends Z{billing={billableOperation:eH,cost:$V};searchId=KV;schema=QV;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[qV.name]:this.catalogOutput(qV),[JV.name]:this.catalogOutput(JV),[YV.name]:this.catalogOutput(YV),[XV.name]:this.catalogOutput(XV),[ZV.name]:this.catalogOutput(ZV)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitOperation:`salesforce_api`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`salesforce_record_id`}]}}async getAgentContext(e){return mp(e,{objects:[`Contact`],includeListViewsFor:[`Contact`]})}},nH=QV,rH={searchId:KV,billableOperation:eH,baseSearch:Q(KV),outputFieldMode:`static`,paginationType:`cursor`,label:`Salesforce contacts`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List contacts from your Salesforce org: identity columns (id, name, email) plus a JSON record with the standard field set and any custom fields you pick. Filter with field conditions or run one of the org's own list views.`,tags:[H.EMAIL,H.NEW],keywords:[`crm`,`sfdc`,`lookup`,`list`,`records`,`import`,`person`],docPath:$(KV),guide:"Call get_provider_context first for the org's field API names and picklist values โ use them verbatim (`__c` = custom). Standard fields become typed columns; picked custom fields nest under custom_properties in the contact JSON. Filters accept dotted parent paths (Account.Industry); date values accept SOQL literals like LAST_N_DAYS:30. To find stale records, filter on `LastActivityDate` (e.g. `LastActivityDate < LAST_N_DAYS:90` โ it reflects closed tasks + events, not literal touches). `list_view` runs the org's own segmentation (XOR with filters/shortcuts). Results page by record id (creation order) โ a cursor never expires. Rows the connected user cannot see are silently absent (sharing rules).",cost:$V,provider:`salesforce`,defaultPayload:{search_id:KV,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,list_view:``,email_domains:{include:[],exclude:[]},has_email:!1,owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{salesforce_record_id:{enabled:!0,alias:``},first_name:{enabled:!0,alias:``},last_name:{enabled:!0,alias:``},email:{enabled:!0,alias:``},salesforce_contact_match:{enabled:!0,alias:``}}}}},iH=`query:databricks@1`,aH=r.object({search_id:r.literal(iH),connector:zu(),config:r.object({query:Nd({path:`config.query`,groupPath:`config.general`,sectionKey:`general`,label:`SQL query`,description:`A single read-only SELECT statement. It is wrapped automatically for pagination, so do not add your own LIMIT/OFFSET for paging.`,rows:8,minLength:1,maxLength:2e4}),limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of rows per page`}).default(100),page_number:P({path:`config.page_number`,min:1,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page`,description:`1-based page index (offset pagination)`}).nullable().default(1)})}),oH={allowManagedConnection:!1,mode:null,credits:null,info:`Querying your own Databricks SQL warehouse is free.`},sH=`data-query-databricks-v1`,cH=class extends Z{billing={billableOperation:sH,cost:oH};searchId=iH;schema=aH;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{}}getConnectionsRequirements(){return[{provider:`databricks`,rateLimitOperation:`databricks_query`,rateLimitRatio:1,allowManagedConnection:!1}]}async getAgentContext(e){return AR(`databricks`,e)}},lH=aH,uH={searchId:iH,billableOperation:sH,baseSearch:Q(iH),outputFieldMode:`dynamic`,paginationType:`page_number`,label:`Query Databricks`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Run a read-only SQL query against your Databricks SQL warehouse and return the rows.`,guide:"Databricks SQL dialect; config.query must be a single read-only statement (no self-managed LIMIT/OFFSET โ pagination is wrapped automatically). To discover the schema, draft a payload with a placeholder config.query like \"SELECT 1\" and the chosen connection in connector.connections, then call get_provider_context once โ it returns the workspace-wide table/column map (all Unity catalogs) for free. Always reference tables by their FULLY QUALIFIED three-part name exactly as the map lists them (catalog.schema.table, e.g. samples.accuweather.forecast_daily); a bare table name resolves against the warehouse's unpredictable current catalog and usually fails with TABLE_OR_VIEW_NOT_FOUND. Sample actual rows (also free) with run_search_oneshot, then write the real config.query. Tables under the `samples` catalog (and Databricks' other built-in example schemas like `tpch` and `tpcds_*`) are DEMO data shipped to every workspace, NOT the customer's own data. If the user asks about their data and the only match is under `samples`/a demo schema โ or the map shows only demo tables โ the connection isn't pointed at their catalog: confirm the intended table with the user before querying, and never answer their question from a demo table.",tags:[H.FIELDS,H.NEW],keywords:[`sql`,`database`,`warehouse`,`select`,`table`,`read data`],docPath:$(iH),cost:oH,provider:`databricks`,defaultPayload:{search_id:iH,connector:{strategy:`first`,connections:[]},config:{query:``,limit:100,page_number:1}}},dH=`query:postgres@1`,fH=r.object({search_id:r.literal(dH),connector:zu(),config:r.object({query:Nd({path:`config.query`,groupPath:`config.general`,sectionKey:`general`,label:`SQL query`,description:`A single read-only SELECT statement. It is wrapped automatically for pagination, so do not add your own LIMIT/OFFSET for paging.`,rows:8,minLength:1,maxLength:2e4}),limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of rows per page`}).default(100),page_number:P({path:`config.page_number`,min:1,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page`,description:`1-based page index (offset pagination)`}).nullable().default(1)})}),pH={allowManagedConnection:!1,mode:null,credits:null,info:`Querying your own PostgreSQL database is free.`},mH=`data-query-postgres-v1`,hH=class extends Z{billing={billableOperation:mH,cost:pH};searchId=dH;schema=fH;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{}}getConnectionsRequirements(){return[{provider:`postgres`,rateLimitOperation:`postgres_query`,rateLimitRatio:1,allowManagedConnection:!1}]}async getAgentContext(e){return AR(`postgres`,e)}},gH=fH,_H={searchId:dH,billableOperation:mH,baseSearch:Q(dH),outputFieldMode:`dynamic`,paginationType:`page_number`,label:`Query Postgres`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Run a read-only SQL query against your own PostgreSQL database and return the rows.`,guide:`PostgreSQL dialect; config.query must be a single read-only SELECT (no self-managed LIMIT/OFFSET โ pagination is wrapped automatically). To discover the schema, draft a payload with a placeholder config.query like "SELECT 1" and the chosen connection in connector.connections, then call get_provider_context once โ it returns the full table/column map for free. Sample actual rows (also free) with run_search_oneshot, then write the real config.query.`,tags:[H.FIELDS,H.NEW],keywords:[`sql`,`database`,`select`,`table`,`read data`],docPath:$(dH),cost:pH,provider:`postgres`,defaultPayload:{search_id:dH,connector:{strategy:`first`,connections:[]},config:{query:``,limit:100,page_number:1}}},vH=`deals:attio@1`,yH=_(`attio_record_id`),bH=_(`deal_name`),xH=_(`deal_amount`),SH=_(`attio_deal_match`),CH=r.object({search_id:r.literal(vH),connector:zu(),config:r.object({custom_properties:bB(`value`,Hp({target:`objects`,identifier:`deals`})),filters:xB(`value`),stage:Fd({path:`config.stage`,groupPath:`config.general`,sectionKey:`general`,label:`Deal stage`,required:!1,info:`This workspace's actual stage titles โ custom stages included.`,enabledIf:v(`attio`),optionsDef:Fp,multiple:!0}),owner:Fd({path:`config.owner`,groupPath:`config.general`,sectionKey:`general`,label:`Owner`,required:!1,info:``,enabledIf:v(`attio`),optionsDef:Bp}),saved_view:SB(Rp({target:`objects`,identifier:`deals`})),created_within:CB(),limit:vB(),page_number:yB(),output_fields:I(r.object({[yH.name]:A({fieldName:yH.name}),[bH.name]:A({fieldName:bH.name}),[xH.name]:A({fieldName:xH.name}),[SH.name]:A({fieldName:SH.name})}))}).check(e=>wB(e,[`stage`,`owner`,`created_within`]))}),wH={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own Attio workspace is free.`},TH=`deals-attio-v1`,EH=class extends Z{billing={billableOperation:TH,cost:wH};searchId=vH;schema=CH;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[yH.name]:this.catalogOutput(yH),[bH.name]:this.catalogOutput(bH),[xH.name]:this.catalogOutput(xH),[SH.name]:this.catalogOutput(SH)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_query`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`attio_record_id`}]}}async getAgentContext(e){return Wp(e,{objects:[`deals`],includeViewsFor:[`deals`],includeMembers:!0})}},DH=CH,OH={searchId:vH,billableOperation:TH,baseSearch:Q(vH),outputFieldMode:`static`,paginationType:`page_number`,label:`Attio deals`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List deals from your Attio workspace: identity columns (id, name, value) plus a JSON record with the standard attribute set and any custom attributes you pick.`,tags:[H.NEW],keywords:[`crm`,`list`,`records`,`import`,`opportunity`,`pipeline`],docPath:$(vH),guide:"Call get_provider_context first โ deal stage titles are workspace-defined (never assume Won/Lost exist). The Deals object is opt-in per workspace; a disabled object fails with a settings hint. Standard attributes become typed columns; everything else rides in the deal JSON. Exact value/date ranges go in the attribute filters (`value` gte/lte); a saved view replaces the filter fields entirely. Multi-pipeline flows live in Attio LISTS โ use entries:attio@1 for list-based pipelines. Attio reports no total count โ page until a short page.",cost:wH,provider:`attio`,defaultPayload:{search_id:vH,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,stage:[],owner:``,saved_view:``,created_within:``,limit:100,page_number:1,output_fields:{attio_record_id:{enabled:!0,alias:``},deal_name:{enabled:!0,alias:``},deal_amount:{enabled:!0,alias:``},attio_deal_match:{enabled:!0,alias:``}}}}},kH=`deals:hubspot@1`,AH=_(`hubspot_object_id`),jH=_(`deal_name`),MH=_(`deal_amount`),NH=_(`hubspot_deal_match`),PH=r.object({search_id:r.literal(kH),connector:zu(),config:r.object({query:j({path:`config.query`,groupPath:`config.general`,inputType:`text`,label:`Search text`,sectionKey:`general`,info:`Free-text search over HubSpot's default searchable deal properties (deal name, pipeline, stage, description).`,guide:`Free-text search over HubSpot's default searchable deal properties: deal name, pipeline, stage, description.`}).nullable(),custom_properties:wd({path:`config.custom_properties`,groupPath:`config.general`,sectionKey:`general`,label:`Custom properties`,placeholder:`contract_term`,info:"Added to the deal JSON under `custom_properties` โ internal names, custom properties included (standard-set names are already top-level)."}),filters:r.object({conditions:xd({path:`config.filters.conditions`,groupPath:`config.general`,sectionKey:`general`,label:`Property filters`,fieldNamePlaceholder:`amount`,info:`Rows filter on any HubSpot property by internal name โ including custom properties.`,guide:`Filter on any HubSpot property by internal name โ custom properties included.`}),pipeline:Fd({path:`config.filters.pipeline`,groupPath:`config.general`,sectionKey:`general`,label:`Pipeline`,required:!1,info:``,enabledIf:v(`hubspot`),optionsDef:bm(`deals`)}),deal_stage:Fd({path:`config.filters.deal_stage`,groupPath:`config.general`,sectionKey:`general`,label:`Deal stage`,required:!1,info:`Stages of the selected pipeline (stage ids are numeric outside the default pipeline).`,enabledIf:v(`hubspot`),optionsDef:Tm}),status:Pd({required:!1,path:`config.filters.status`,groupPath:`config.general`,sectionKey:`general`,label:`Deal status`,description:`Filters on HubSpot's computed hs_is_closed / hs_is_closed_won โ portal-invariant, unlike stage names.`,options:[{label:`Any`,value:`any`},{label:`Open`,value:`open`},{label:`Won`,value:`won`},{label:`Lost`,value:`lost`}]}).default(`any`),owner:Fd({path:`config.filters.owner`,groupPath:`config.general`,sectionKey:`general`,label:`Owner`,required:!1,info:``,enabledIf:v(`hubspot`),optionsDef:Cm}),created_within:Pd({required:!1,path:`config.filters.created_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Created`,description:`Relative window, resolved at every run โ schedule-friendly. Exact date ranges go in the property filters (createdate gte/lte).`,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``),modified_within:Pd({required:!1,path:`config.filters.modified_within`,groupPath:`config.dates`,sectionKey:`general`,label:`Last modified`,description:``,options:[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l24h`},{label:`Last 48 hours`,value:`l48h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(``)}),limit:P({path:`config.limit`,min:1,max:200,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Rows per page (HubSpot search caps pages at 200 and total results at 10,000).`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[AH.name]:A({fieldName:AH.name}),[jH.name]:A({fieldName:jH.name}),[MH.name]:A({fieldName:MH.name}),[NH.name]:A({fieldName:NH.name})}))})}),FH={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own HubSpot portal is free.`},IH=`deals-hubspot-v1`,LH=class extends Z{billing={billableOperation:IH,cost:FH};searchId=kH;schema=PH;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[AH.name]:this.catalogOutput(AH),[jH.name]:this.catalogOutput(jH),[MH.name]:this.catalogOutput(MH),[NH.name]:this.catalogOutput(NH)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitOperation:`hubspot_crm_search`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`hubspot_object_id`}]}}async getAgentContext(e){return Em(e,{objectTypes:[[`deals`,`0-3`]],includePipelinesFor:[`deals`]})}},RH=PH,zH={searchId:kH,billableOperation:IH,baseSearch:Q(kH),outputFieldMode:`static`,paginationType:`cursor`,label:`HubSpot deals`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List deals from your HubSpot portal: identity columns (id, name, amount) plus a JSON record with the standard property set and any custom properties you pick.`,tags:[H.FIELDS,H.NEW],keywords:[`crm`,`opportunity`,`pipeline`,`list`,`records`,`import`],docPath:$(kH),guide:`Call get_provider_context first โ it includes this portal's pipelines with per-pipeline stage ids and labels (stage ids are numeric outside the default pipeline; never assume 'closedwon' exists). Prefer the status filter (computed hs_is_closed/hs_is_closed_won) over stage names for open/won/lost. Standard fields become typed columns; pipeline, stage and close date ride flat in the deal JSON, picked custom properties nest under custom_properties โ expand it or chain json:extract downstream. Total results cap at 10,000 per query.`,cost:FH,provider:`hubspot`,defaultPayload:{search_id:kH,connector:{strategy:`first`,connections:[]},config:{query:``,custom_properties:[],filters:{conditions:null,pipeline:``,deal_stage:``,status:`any`,owner:``,created_within:``,modified_within:``},limit:100,cursor:``,output_fields:{hubspot_object_id:{enabled:!0,alias:``},deal_name:{enabled:!0,alias:``},deal_amount:{enabled:!0,alias:``},hubspot_deal_match:{enabled:!0,alias:``}}}}},BH=`companies:profiles:amplemarket@1`,VH=_(`company_name`),HH=_(`company_website_url`),UH=_(`company_description`),WH=_(`company_profile_url`),GH=_(`amplemarket_company_match`),KH=r.object({search_id:r.literal(BH),connector:gc.nullable().optional(),config:r.object({limit:P({label:`Limit`,description:`Max number of search results`,path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`}),page_number:P({path:`config.page_number`,groupPath:`config.pagination`,label:`Page number`,min:1,sectionKey:`pagination`,description:``}).nullish(),output_fields:I(r.object({[VH.name]:A({fieldName:VH.name}),[HH.name]:A({fieldName:HH.name}),[UH.name]:A({fieldName:UH.name}),[WH.name]:A({fieldName:WH.name}),[GH.name]:A({fieldName:GH.name})})),filters:r.object({hq_locations:N({path:`config.filters.hq_locations`,sectionKey:`config.filters`,label:`HQ locations`,description:``,placeholder:X(`location`),groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default({include:[],exclude:[]}),company_names:k({sectionKey:`config.filters`,path:`config.filters.company_names`,label:`Company names`,description:``,placeholder:X(`company_name`),groupPath:`config.filters.categories`,suggestionsDef:g(`company.names`)}).default({include:[],exclude:[]}),company_website_urls:k({sectionKey:`config.filters`,path:`config.filters.company_website_urls`,label:`Company domains`,description:``,placeholder:X(`company_domain`),groupPath:`config.filters.categories`,suggestionsDef:g(`company.domains`,{widgets:{emoji:{char:`๐`}}})}).default({include:[],exclude:[]}),company_profile_urls:k({sectionKey:`config.filters`,path:`config.filters.company_profile_urls`,label:`Company LinkedIn URLs`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),company_types:M({sectionKey:`config.filters`,path:`config.filters.company_types`,disableSearch:!1,label:`Company Type`,description:``,groupPath:`config.filters.categories`,options:h(`company.types.amplemarket`),required:!1}).default([]),investors:Id({sectionKey:`config.filters`,path:`config.filters.investors`,label:`Investor names`,optionsDef:g(`company.investors.crunchbase`),description:`A list of company investor names`,placeholder:X(`investor`),groupPath:`config.filters.investors`,disableSearch:!1,required:!1}).default([]),company_industries:Dd({sectionKey:`config.filters`,path:`config.filters.company_industries`,optionsDef:Xe(`company.industries.amplemarket`),disableSearch:!1,label:`Industries`,description:``,placeholder:X(`industry`),groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),customer_types:M({sectionKey:`config.filters`,path:`config.filters.customer_types`,options:[{value:`b2b`,label:`B2B`},{value:`b2c`,label:`B2C`}],required:!1,disableSearch:!0,label:`Customer Types`,description:``,groupPath:`config.filters.industry`}).default([]),keywords:k({sectionKey:`config.filters`,path:`config.filters.keywords`,label:`Keywords`,description:``,groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),revenue_groups:M({path:`config.filters.revenue_groups`,sectionKey:`config.filters`,label:`Revenue groups`,description:``,disableSearch:!0,options:h(`company.revenue.amplemarket`),required:!1,groupPath:`config.filters.financials`}).default([]),founded_year:Ed({path:`config.filters.founded_year`,sectionKey:`config.filters`,label:`Founded year`,groupPath:`config.filters.general`,min:0,max:2040,description:``}).default({min:null,max:null}),open_positions_titles:O({path:`config.filters.open_positions_titles`,sectionKey:`config.filters`,label:`Job openings for titles`,groupPath:`config.filters.job_openings`,description:``,placeholder:X(`title`),suggestionsDef:g(`person.job_titles`)}),headcount:M({sectionKey:`config.filters`,path:`config.filters.company_sizes`,disableSearch:!1,options:h(`company.headcount.amplemarket`),label:`Headcount groups`,required:!1,description:``,groupPath:`config.filters.company_size`}).default([]),headcount_growth_last_6_months_in_percent:Ed({path:`config.filters.headcount_growth_last_6_months_in_percent`,sectionKey:`config.filters`,label:`Headcount growth over last 6 months (in %)`,groupPath:`config.filters.company_size`,description:``,max:1e4,min:0}).default({min:null,max:null})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),qH={allowManagedConnection:!0,mode:`per_page`,credits:{default:2}},JH=`companies-profiles-amplemarket-v1`,YH=class extends Z{billing={billableOperation:JH,cost:qH};searchId=BH;schema=KH;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[VH.name]:this.catalogOutput(VH),[HH.name]:this.catalogOutput(HH),[UH.name]:this.catalogOutput(UH),[WH.name]:this.catalogOutput(WH),[GH.name]:this.catalogOutput(GH)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitOperation:`amplemarket_company_search`,rateLimitRatio:1,allowManagedConnection:!0}]}},XH=KH,ZH={searchId:BH,billableOperation:JH,baseSearch:Q(`companies:profiles:amplemarket@1`),label:`Company search`,categories:[`deprecated`],paginationType:`page_number`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-06-13`,replacedBy:`companies:profiles:amplemarket@2`},description:`Filter based company search.`,tags:[H.COMPANY_PROFILES],docPath:$(BH),cost:qH,provider:`amplemarket`,defaultPayload:{search_id:BH,connector:null,config:{limit:100,page_number:1,output_fields:{company_name:{enabled:!0,alias:``},company_website_url:{enabled:!0,alias:``},company_description:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},amplemarket_company_match:{enabled:!0,alias:``}},filters:{company_industries:{include:[],exclude:[]},company_names:{include:[],exclude:[]},company_profile_urls:{include:[],exclude:[]},company_types:[],company_website_urls:{include:[],exclude:[]},customer_types:[],headcount_growth_last_6_months_in_percent:{min:null,max:null},founded_year:{min:null,max:null},revenue_groups:[],investors:[],keywords:{include:[],exclude:[]},open_positions_titles:[],headcount:[],hq_locations:{include:[],exclude:[]}}}}},QH=`companies:profiles:crustdata@1`,$H=_(`company_name`),eU=_(`company_website_url`),tU=_(`company_description`),nU=_(`company_profile_url`),rU=_(`crustdata_company_match`),iU=r.object({search_id:r.literal(QH),connector:gc.nullable().optional(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of search results`}),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[$H.name]:A({fieldName:$H.name}),[eU.name]:A({fieldName:$H.name}),[tU.name]:A({fieldName:tU.name}),[nU.name]:A({fieldName:nU.name}),[rU.name]:A({fieldName:rU.name})})),filters:r.object({hq_locations:N({path:`config.filters.hq_locations`,sectionKey:`config.filters`,label:`HQ locations`,description:``,placeholder:X(`location`),groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default({include:[],exclude:[]}),crunchbase_categories:N({path:`config.filters.crunchbase_categories`,sectionKey:`config.filters`,label:`Crunchbase categories`,placeholder:X(`crunchbase_category`),description:``,groupPath:`config.filters.categories`,optionsDef:g(`company.categories.crunchbase`)}).default({include:[],exclude:[]}),crunchbase_investors:N({path:`config.filters.crunchbase_investors`,sectionKey:`config.filters`,label:`Investors to include (Crunchbase)`,description:``,placeholder:X(`investor`),groupPath:`config.filters.investors`,optionsDef:g(`company.investors.crunchbase`)}).default({include:[],exclude:[]}),tracxn_investors:N({path:`config.filters.tracxn_investors`,sectionKey:`config.filters`,label:`Investors to include (Tracxn)`,description:``,placeholder:X(`investor`),groupPath:`config.filters.investors`,optionsDef:g(`company.investors.tracxn`)}).default({include:[],exclude:[]}),company_types:Dd({sectionKey:`config.filters`,path:`config.filters.company_types`,optionsDef:{type:`static`,options:h(`company.types.crustdata_legacy`)},label:`Company types`,placeholder:`Public, Private, ...`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),linkedin_industries:N({sectionKey:`config.filters`,path:`config.filters.linkedin_industries`,optionsDef:g(`company.industries.linkedin`),label:`Industries`,description:``,placeholder:X(`industry`),groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),markets:N({sectionKey:`config.filters`,path:`config.filters.markets`,optionsDef:g(`company.stock_exchanges.crustdata_legacy`),placeholder:`NYSE, TYO, ...`,label:`Markets`,description:``,groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),linkedin_categories:N({sectionKey:`config.filters`,path:`config.filters.linkedin_categories`,optionsDef:g(`company.linkedin_categories.crustdata`),label:`LinkedIn category`,placeholder:`Marketing, Branding, ...`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),headcount:Dd({path:`config.filters.headcount`,sectionKey:`config.filters`,label:`Headcount`,description:``,disableSearch:!0,placeholder:`1-10`,optionsDef:{type:`static`,options:h(`company.headcount`)},groupPath:`config.filters.company_size`}).default({include:[],exclude:[]}),headcount_growth_last_6m_in_percent:M({path:`config.filters.headcount_growth_last_6m_in_percent`,sectionKey:`config.filters`,label:`Headcount growth over last 6 months in percent`,description:``,options:h(`company.growth_brackets`),placeholder:`0-10%`,disableSearch:!0,required:!1,groupPath:`config.filters.company_size`}).default([]),revenue_in_usd:kd({path:`config.filters.revenue_in_usd`,sectionKey:`config.filters`,label:`Revenue (USD)`,description:``,legend:`1k - 10B`,min:1e3,max:1e10,groupPath:`config.filters.financials`}),last_funding_type:Dd({path:`config.filters.last_funding_type`,sectionKey:`config.filters`,label:`Last funding type`,placeholder:`Series A`,disableSearch:!0,optionsDef:{type:`static`,options:h(`company.funding_rounds.crustdata`)},description:``,groupPath:`config.filters.financials`}).default({include:[],exclude:[]}),last_funding_amount:kd({path:`config.filters.last_funding_amount`,sectionKey:`config.filters`,label:`Last funding amount`,legend:`1k - 10B`,min:1e3,max:1e10,description:``,groupPath:`config.filters.financials`}),number_of_followers:M({path:`config.filters.number_of_followers`,sectionKey:`config.filters`,label:`Number of LinkedIn followers`,placeholder:`1-500`,disableSearch:!0,description:``,required:!1,options:h(`company.followers.crustdata`),groupPath:`config.filters.web_presence`}).default([]),follower_growth_last_6m_in_percent:M({path:`config.filters.follower_growth_last_6m_in_percent`,sectionKey:`config.filters`,label:`LinkedIn follower growth within last 6 months`,required:!1,disableSearch:!0,placeholder:`0-10%`,description:``,options:h(`company.growth_brackets`),groupPath:`config.filters.web_presence`}).default([]),profile_summary_keywords:k({path:`config.filters.profile_summary_keywords`,sectionKey:`config.filters`,maxItems:50,label:`LinkedIn company description contains`,placeholder:X(`company_profile_keyword`),description:``,groupPath:`config.filters.keywords`}).default({include:[],exclude:[]}),competitor_websites:k({path:`config.filters.competitor_websites`,sectionKey:`config.filters`,maxItems:50,label:`Competitor domains`,description:``,placeholder:X(`company_domain`),groupPath:`config.filters.competitors`,suggestionsDef:g(`company.domains`,{widgets:{emoji:{char:`๐`}}})}).default({include:[],exclude:[]})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),aU={allowManagedConnection:!0,mode:`per_page`,credits:{default:2}},oU=`companies-profiles-crustdata-v1`,sU=class extends Z{billing={billableOperation:oU,cost:aU};searchId=QH;schema=iU;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[$H.name]:this.catalogOutput($H),[eU.name]:this.catalogOutput(eU),[tU.name]:this.catalogOutput(tU),[nU.name]:this.catalogOutput(nU),[rU.name]:this.catalogOutput(rU)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_company_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}},cU=iU,lU={searchId:QH,billableOperation:oU,baseSearch:Q(`companies:profiles:crustdata@1`),label:`Company search`,categories:[`deprecated`],paginationType:`cursor`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-06-13`,replacedBy:`companies:profiles:crustdata@2`},description:`Filter based company search.`,tags:[H.COMPANY_PROFILES],docPath:$(QH),cost:aU,provider:`crustdata`,defaultPayload:{search_id:QH,connector:null,config:{limit:100,cursor:``,output_fields:{company_name:{enabled:!0,alias:``},company_website_url:{enabled:!0,alias:``},company_description:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},crustdata_company_match:{enabled:!0,alias:``}},filters:{company_types:{include:[],exclude:[]},headcount_growth_last_6m_in_percent:[],last_funding_amount:{from:null,to:null},last_funding_type:{include:[],exclude:[]},linkedin_industries:{include:[],exclude:[]},linkedin_categories:{include:[],exclude:[]},crunchbase_categories:{include:[],exclude:[]},markets:{include:[],exclude:[]},revenue_in_usd:{from:null,to:null},crunchbase_investors:{include:[],exclude:[]},tracxn_investors:{include:[],exclude:[]},follower_growth_last_6m_in_percent:[],headcount:{include:[],exclude:[]},hq_locations:{include:[],exclude:[]},number_of_followers:[],profile_summary_keywords:{include:[],exclude:[]},competitor_websites:{include:[],exclude:[]}}}}},uU=`companies:profiles:crustdata@2`,dU=_(`company_name`),fU=_(`company_domain`),pU=_(`company_description`),mU=_(`company_profile_url`),hU=_(`crustdata_company_match`),gU=r.object({search_id:r.literal(uU),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of search results`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[dU.name]:A({fieldName:dU.name}),[fU.name]:A({fieldName:fU.name}),[pU.name]:A({fieldName:pU.name}),[mU.name]:A({fieldName:mU.name}),[hU.name]:A({fieldName:hU.name})})),filters:r.object({hq_locations:N({path:`config.filters.hq_locations`,sectionKey:`config.filters`,label:`HQ locations`,description:``,placeholder:X(`location`),groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default({include:[],exclude:[]}),crunchbase_categories:N({path:`config.filters.crunchbase_categories`,sectionKey:`config.filters`,label:`Crunchbase categories`,placeholder:X(`crunchbase_category`),description:``,groupPath:`config.filters.categories`,optionsDef:g(`company.categories.crunchbase`)}).default({include:[],exclude:[]}),crunchbase_investors:N({path:`config.filters.crunchbase_investors`,sectionKey:`config.filters`,label:`Investors to include (Crunchbase)`,description:``,placeholder:X(`investor`),groupPath:`config.filters.investors`,optionsDef:g(`company.investors.crunchbase`)}).default({include:[],exclude:[]}),tracxn_investors:N({path:`config.filters.tracxn_investors`,sectionKey:`config.filters`,label:`Investors to include (Tracxn)`,description:``,placeholder:X(`investor`),groupPath:`config.filters.investors`,optionsDef:g(`company.investors.tracxn`)}).default({include:[],exclude:[]}),company_types:Dd({sectionKey:`config.filters`,path:`config.filters.company_types`,optionsDef:{type:`static`,options:h(`company.types.crustdata_legacy`)},label:`Company types`,placeholder:`Public, Private, ...`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),linkedin_industries:N({sectionKey:`config.filters`,path:`config.filters.linkedin_industries`,optionsDef:g(`company.industries.linkedin`),label:`Industries`,description:``,placeholder:X(`industry`),groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),markets:N({sectionKey:`config.filters`,path:`config.filters.markets`,optionsDef:g(`company.stock_exchanges.crustdata_legacy`),placeholder:`NYSE, TYO, ...`,label:`Markets`,description:``,groupPath:`config.filters.industry`}).default({include:[],exclude:[]}),linkedin_categories:N({sectionKey:`config.filters`,path:`config.filters.linkedin_categories`,optionsDef:g(`company.linkedin_categories.crustdata`),label:`LinkedIn category`,placeholder:`Marketing, Branding, ...`,description:``,groupPath:`config.filters.categories`}).default({include:[],exclude:[]}),headcount:Dd({path:`config.filters.headcount`,sectionKey:`config.filters`,label:`Headcount`,description:``,disableSearch:!0,placeholder:`1-10`,optionsDef:{type:`static`,options:h(`company.headcount`)},groupPath:`config.filters.company_size`}).default({include:[],exclude:[]}),linkedin_headcount_ranges:M({path:`config.filters.linkedin_headcount_ranges`,sectionKey:`config.filters`,label:`Size bracket`,description:`Headcount range a company self-reports on its LinkedIn page.`,options:h(`company.linkedin_headcount.crustdata`),placeholder:`2-10`,disableSearch:!0,required:!1,groupPath:`config.filters.company_size`}).default([]),headcount_growth_l6m_in_percent:M({path:`config.filters.headcount_growth_l6m_in_percent`,sectionKey:`config.filters`,label:`Headcount growth over last 6 months in percent`,description:``,options:h(`company.growth_brackets`),placeholder:`0-10%`,disableSearch:!0,required:!1,groupPath:`config.filters.company_size`}).default([]),revenue_in_usd:kd({path:`config.filters.revenue_in_usd`,sectionKey:`config.filters`,label:`Revenue (USD)`,description:``,legend:`1k - 10B`,min:1e3,max:1e10,groupPath:`config.filters.financials`}),last_funding_type:Dd({path:`config.filters.last_funding_type`,sectionKey:`config.filters`,label:`Last funding type`,placeholder:`Series A`,disableSearch:!0,optionsDef:{type:`static`,options:h(`company.funding_rounds.crustdata`)},description:``,groupPath:`config.filters.financials`}).default({include:[],exclude:[]}),last_funding_amount:kd({path:`config.filters.last_funding_amount`,sectionKey:`config.filters`,label:`Last funding amount`,legend:`1k - 10B`,min:1e3,max:1e10,description:``,groupPath:`config.filters.financials`}),number_of_followers:M({path:`config.filters.number_of_followers`,sectionKey:`config.filters`,label:`Number of LinkedIn followers`,placeholder:`1-500`,disableSearch:!0,description:``,required:!1,options:h(`company.followers.crustdata`),groupPath:`config.filters.web_presence`}).default([]),follower_growth_l6m_in_percent:M({path:`config.filters.follower_growth_l6m_in_percent`,sectionKey:`config.filters`,label:`LinkedIn follower growth within last 6 months`,required:!1,disableSearch:!0,placeholder:`0-10%`,description:``,options:h(`company.growth_brackets`),groupPath:`config.filters.web_presence`}).default([]),profile_summary_keywords:k({path:`config.filters.profile_summary_keywords`,sectionKey:`config.filters`,maxItems:50,label:`LinkedIn company description contains`,placeholder:X(`company_profile_keyword`),description:``,groupPath:`config.filters.keywords`}).default({include:[],exclude:[]}),competitor_domains:k({path:`config.filters.competitor_domains`,sectionKey:`config.filters`,maxItems:50,label:`Competitor domain`,description:``,placeholder:X(`company_domain`),groupPath:`config.filters.competitors`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),company_domains:k({path:`config.filters.company_domains`,sectionKey:`config.filters`,maxItems:400,label:`Company domain`,description:``,placeholder:X(`company_domain`),groupPath:`config.filters.web_presence`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),company_profile_urls:k({path:`config.filters.company_profile_urls`,sectionKey:`config.filters`,maxItems:2e3,label:`Company LinkedIn URL`,description:``,placeholder:`https://linkedin.com/company/...`,groupPath:`config.filters.web_presence`}).default({include:[],exclude:[]}),company_names:k({path:`config.filters.company_names`,sectionKey:`config.filters`,maxItems:2e3,label:`Company name`,description:``,placeholder:X(`company_name`),groupPath:`config.filters.web_presence`}).default({include:[],exclude:[]})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),_U={match:`any`,fields:[{fieldName:`company_profile_url`}]},vU={allowManagedConnection:!0,mode:`per_page`,credits:{default:2}},yU=`companies-profiles-crustdata-v2`,bU=class extends Z{billing={billableOperation:yU,cost:vU};searchId=uU;schema=gU;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[dU.name]:this.catalogOutput(dU),[fU.name]:this.catalogOutput(fU),[pU.name]:this.catalogOutput(pU),[mU.name]:this.catalogOutput(mU),[hU.name]:this.catalogOutput(hU)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_company_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return _U}},xU=gU,SU={searchId:uU,billableOperation:yU,baseSearch:Q(`companies:profiles:crustdata@2`),label:`Company search`,categories:[`deprecated`],paginationType:`cursor`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-09-19`,replacedBy:`companies:profiles:crustdata@3`},description:`Filter-based company search on Crustdata's dataset โ widest filter surface: funding, investors, headcount growth, LinkedIn signals.`,tags:[H.COMPANY_PROFILES],docPath:$(uU),cost:vU,provider:`crustdata`,defaultPayload:{search_id:uU,connector:null,config:{limit:100,cursor:``,output_fields:{company_name:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},company_description:{enabled:!0,alias:``},company_profile_url:{enabled:!0,alias:``},crustdata_company_match:{enabled:!0,alias:``}},filters:{company_types:{include:[],exclude:[]},headcount_growth_l6m_in_percent:[],last_funding_amount:{from:null,to:null},last_funding_type:{include:[],exclude:[]},linkedin_industries:{include:[],exclude:[]},linkedin_categories:{include:[],exclude:[]},crunchbase_categories:{include:[],exclude:[]},markets:{include:[],exclude:[]},revenue_in_usd:{from:null,to:null},crunchbase_investors:{include:[],exclude:[]},tracxn_investors:{include:[],exclude:[]},follower_growth_l6m_in_percent:[],headcount:{include:[],exclude:[]},linkedin_headcount_ranges:[],hq_locations:{include:[],exclude:[]},number_of_followers:[],profile_summary_keywords:{include:[],exclude:[]},competitor_domains:{include:[],exclude:[]},company_domains:{include:[],exclude:[]},company_profile_urls:{include:[],exclude:[]},company_names:{include:[],exclude:[]}}}}},CU=`people:profiles:amplemarket@1`,wU=_(`name`),TU=_(`company_website_url`),EU=_(`profile_url`),DU=_(`job_title`),OU=_(`amplemarket_person_match`),kU=r.object({search_id:r.literal(CU),connector:gc.nullable().optional(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,label:`Limit`,sectionKey:`pagination`,description:`Max number of search results`}),page_number:P({path:`config.page_number`,groupPath:`config.pagination`,label:`Page number`,min:1,sectionKey:`pagination`,description:``}).nullish(),output_fields:I(r.object({[wU.name]:A({fieldName:wU.name}),[TU.name]:A({fieldName:TU.name}),[EU.name]:A({fieldName:EU.name}),[DU.name]:A({fieldName:DU.name}),[OU.name]:A({fieldName:OU.name})})),filters:r.object({person_names:O({label:`Full name`,path:`config.filters.person_names`,sectionKey:`config.filters`,groupPath:`config.filters.general`}),current_locations:N({path:`config.filters.current_locations`,sectionKey:`config.filters`,label:`Location`,optionsDef:g(`location.names`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),current_job_titles:O({path:`config.filters.current_job_titles`,sectionKey:`config.filters`,label:`Title`,placeholder:X(`title`),description:``,order:1,groupPath:`config.filters.current_employer`,suggestionsDef:g(`person.job_titles`)}),current_seniority_levels:M({path:`config.filters.current_seniority_levels`,sectionKey:`config.filters`,placeholder:X(`seniority`),label:`Seniority`,required:!1,disableSearch:!1,options:h(`person.seniority.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_departments:M({path:`config.filters.current_departments`,sectionKey:`config.filters`,label:`Department`,placeholder:X(`department`),disableSearch:!1,required:!1,options:h(`person.departments.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_job_functions:M({path:`config.filters.current_job_functions`,sectionKey:`config.filters`,label:`Job function`,placeholder:X(`job_function`),disableSearch:!1,required:!1,options:h(`person.job_functions.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_employer_locations:N({path:`config.filters.current_employer_locations`,sectionKey:`config.filters`,label:`Headquarters`,optionsDef:g(`location.names`),groupPath:`config.filters.current_company`,placeholder:X(`location`)}).default({include:[],exclude:[]}),current_employer_names:k({path:`config.filters.current_employer_names`,sectionKey:`config.filters`,label:`Company name`,groupPath:`config.filters.current_company`,description:``,placeholder:X(`company_name`),suggestionsDef:g(`company.names`)}).default({include:[],exclude:[]}),current_employer_website_urls:k({path:`config.filters.current_employer_website_urls`,sectionKey:`config.filters`,label:`Company domain`,description:``,maxItems:200,placeholder:X(`company_domain`),groupPath:`config.filters.current_company`,suggestionsDef:g(`company.domains`,{widgets:{emoji:{char:`๐`}}})}).default({include:[],exclude:[]}),current_employer_linkedin_industries:M({path:`config.filters.current_employer_linkedin_industries`,sectionKey:`config.filters`,label:`Industry`,disableSearch:!1,groupPath:`config.filters.current_company`,description:``,placeholder:X(`industry`),required:!1,options:h(`company.industries.linkedin_full`)}).default([]),current_employer_estimated_revenue:M({path:`config.filters.current_employer_estimated_revenue`,sectionKey:`config.filters`,label:`Estimated revenue`,disableSearch:!1,required:!1,groupPath:`config.filters.current_company`,description:``,options:h(`company.revenue.amplemarket`)}).default([]),current_employer_founded_year:Ed({path:`config.filters.current_employer_founded_year`,sectionKey:`config.filters`,label:`Founded year`,groupPath:`config.filters.current_company`,min:0,max:2040,description:``}).default({min:null,max:null}),current_employer_investors:O({path:`config.filters.current_employer_investors`,sectionKey:`config.filters`,label:`Employer investors`,groupPath:`config.filters.current_company`,placeholder:X(`investor`),description:``}),current_employer_open_positions_titles:O({path:`config.filters.current_employer_open_positions_titles`,sectionKey:`config.filters`,label:`Open positions`,groupPath:`config.filters.current_company`,description:``,placeholder:X(`title`),suggestionsDef:g(`person.job_titles`)}),school_names:N({path:`config.filters.school_names`,sectionKey:`config.filters`,label:`School names`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),AU={allowManagedConnection:!0,mode:`per_page`,credits:{default:3},info:`1 page = 100 records; 200 results = 2 pages`},jU=`people-profiles-amplemarket-v1`,MU=class extends Z{billing={billableOperation:jU,cost:AU};searchId=CU;schema=kU;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[wU.name]:this.catalogOutput(wU),[TU.name]:this.catalogOutput(TU),[EU.name]:this.catalogOutput(EU),[DU.name]:this.catalogOutput(DU),[OU.name]:this.catalogOutput(OU)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitOperation:`amplemarket_people_search`,rateLimitRatio:1,allowManagedConnection:!0}]}},NU=kU,PU={searchId:CU,billableOperation:jU,baseSearch:Q(`people:profiles:amplemarket@1`),paginationType:`page_number`,label:`People search`,categories:[`deprecated`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-06-13`,replacedBy:`people:profiles:amplemarket@2`},description:`Filter-based people search.`,tags:[H.PEOPLE_PROFILES],docPath:$(CU),cost:AU,provider:`amplemarket`,defaultPayload:{search_id:CU,connector:null,config:{limit:50,page_number:1,output_fields:{name:{enabled:!0,alias:``},job_title:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},company_website_url:{enabled:!0,alias:``},amplemarket_person_match:{enabled:!0,alias:``}},filters:{current_employer_names:{include:[],exclude:[]},current_departments:[],current_employer_locations:{include:[],exclude:[]},person_names:[],current_employer_founded_year:{min:null,max:null},current_employer_estimated_revenue:[],current_employer_investors:[],current_employer_open_positions_titles:[],current_job_functions:[],current_locations:{include:[],exclude:[]},current_employer_linkedin_industries:[],current_employer_website_urls:{include:[],exclude:[]},current_seniority_levels:[],school_names:{include:[],exclude:[]},current_job_titles:[]}}}},FU=`people:profiles:crustdata@1`,IU=_(`name`),LU=_(`company_website_url`),RU=_(`profile_url`),zU=_(`job_title`),BU=_(`crustdata_person_match`),VU=r.object({search_id:r.literal(FU),connector:gc.nullable().optional(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of search results`}),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[IU.name]:A({fieldName:IU.name}),[LU.name]:A({fieldName:LU.name}),[RU.name]:A({fieldName:RU.name}),[zU.name]:A({fieldName:zU.name}),[BU.name]:A({fieldName:BU.name})})),filters:r.object({locations:N({path:`config.filters.locations`,sectionKey:`config.filters`,label:`Location`,placeholder:X(`location`),optionsDef:g(`location.names`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),current_job_titles:k({path:`config.filters.current_job_titles`,sectionKey:`config.filters`,label:`Title`,description:``,placeholder:X(`title`),order:1,groupPath:`config.filters.current_employer`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),current_employers:k({path:`config.filters.current_employers`,sectionKey:`config.filters`,label:`Company name`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),current_employers_website_urls:k({path:`config.filters.current_employers_website_urls`,sectionKey:`config.filters`,label:`Company domain`,placeholder:X(`company_domain`),description:``,maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.domains`,{widgets:{emoji:{char:`๐`}}})}).default({include:[],exclude:[]}),current_employers_linkedin_industries:N({path:`config.filters.current_employers_linkedin_industries`,sectionKey:`config.filters`,label:`Industry`,groupPath:`config.filters.current_employer`,placeholder:X(`industry`),description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),years_at_current_company:M({path:`config.filters.years_at_current_company`,sectionKey:`config.filters`,label:`Years at current company`,placeholder:`1 to 2 years`,disableSearch:!1,required:!1,groupPath:`config.filters.current_employer`,description:``,options:h(`person.year_brackets`)}).default([]),previous_employers_website_urls:k({path:`config.filters.previous_employers_website_urls`,sectionKey:`config.filters`,label:`Previous employer domain`,description:``,placeholder:X(`company_domain`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.domains`,{widgets:{emoji:{char:`๐`}}})}).default({include:[],exclude:[]}),previous_seniority_levels:Dd({path:`config.filters.previous_seniority_levels`,sectionKey:`config.filters`,label:`Previous seniority`,placeholder:X(`seniority`),disableSearch:!0,optionsDef:Xe(`person.seniority.crustdata`),description:``,groupPath:`config.filters.experience`}).default({include:[],exclude:[]}),previous_employers:k({path:`config.filters.previous_employers`,sectionKey:`config.filters`,label:`Previous employer`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),previous_job_titles:k({path:`config.filters.previous_job_titles`,sectionKey:`config.filters`,label:`Previous title`,description:``,placeholder:X(`title`),groupPath:`config.filters.experience`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),previous_employers_linkedin_industries:N({path:`config.filters.previous_employers_linkedin_industries`,sectionKey:`config.filters`,label:`Previous employer industries`,placeholder:X(`industry`),groupPath:`config.filters.experience`,description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),profile_headline_keywords:k({path:`config.filters.profile_headline_keywords`,sectionKey:`config.filters`,label:`Headline contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`headline_keywords`)}).default({include:[],exclude:[]}),profile_summary_keywords:k({path:`config.filters.profile_summary_keywords`,sectionKey:`config.filters`,label:`Profile about section contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`profile_keywords`)}).default({include:[],exclude:[]}),profile_languages:Dd({path:`config.filters.profile_languages`,sectionKey:`config.filters`,label:`Profile language`,placeholder:X(`languages`),optionsDef:Xe(`person.languages.crustdata`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),languages:Dd({path:`config.filters.languages`,sectionKey:`config.filters`,label:`Spoken language`,placeholder:X(`languages_1`),optionsDef:Xe(`person.languages.crustdata`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),skills:N({path:`config.filters.skills`,sectionKey:`config.filters`,label:`Skills`,description:``,placeholder:X(`skills`),groupPath:`config.filters.skills`,optionsDef:g(`person.skills`)}).default({include:[],exclude:[]}),years_of_experience:M({path:`config.filters.years_of_experience`,sectionKey:`config.filters`,label:`Years of experience`,placeholder:`1 to 2 years`,disableSearch:!0,description:``,required:!1,options:h(`person.year_brackets`),groupPath:`config.filters.experience`}).default([]),current_seniority_levels:Dd({path:`config.filters.current_seniority_levels`,sectionKey:`config.filters`,disableSearch:!0,label:`Seniority`,placeholder:X(`seniority`),optionsDef:Xe(`person.seniority.crustdata`),description:``,groupPath:`config.filters.experience`}).default({include:[],exclude:[]}),certifications:k({path:`config.filters.certifications`,sectionKey:`config.filters`,label:`Certifications`,groupPath:`config.filters.certifications_honors`,placeholder:X(`certification`),description:``}).default({include:[],exclude:[]}),honors:k({path:`config.filters.honors`,sectionKey:`config.filters`,label:`Honors`,groupPath:`config.filters.certifications_honors`,placeholder:X(`honor`),description:``}).default({include:[],exclude:[]}),recently_changed_jobs:Md({path:`config.filters.recently_changed_jobs`,sectionKey:`config.filters`,label:`Recently changed jobs`,description:``,defaultValue:null,groupPath:`config.filters.activities`}),fields_of_study:N({path:`config.filters.fields_of_study`,sectionKey:`config.filters`,label:`Fields of study`,placeholder:X(`field_of_study`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.field_of_study`)}).default({include:[],exclude:[]}),degree_names:N({path:`config.filters.degree_names`,sectionKey:`config.filters`,label:`Degree names`,placeholder:X(`degree_name`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.degree.crustdata`)}).default({include:[],exclude:[]}),school_names:N({path:`config.filters.school_names`,sectionKey:`config.filters`,label:`School names`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),current_school_names:N({path:`config.filters.current_school_names`,sectionKey:`config.filters`,label:`Currently enrolled at`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),extracurricular_activities:k({path:`config.filters.extracurricular_activities`,sectionKey:`config.filters`,label:`Extracurricular activities`,description:``,placeholder:X(`extracurricular`),groupPath:`config.filters.education`,suggestionsDef:g(`person.education_activities.crustdata`)}).default({include:[],exclude:[]})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),HU={allowManagedConnection:!0,mode:`per_page`,credits:{default:5},info:`1 page = 100 records; 200 results = 2 pages`},UU=`people-profiles-crustdata-v1`,WU=class extends Z{billing={billableOperation:UU,cost:HU};searchId=FU;schema=VU;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[IU.name]:this.catalogOutput(IU),[LU.name]:this.catalogOutput(LU),[RU.name]:this.catalogOutput(RU),[zU.name]:this.catalogOutput(zU),[BU.name]:this.catalogOutput(BU)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_people_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}},GU=VU,KU={searchId:FU,billableOperation:UU,baseSearch:Q(`people:profiles:crustdata@1`),paginationType:`cursor`,label:`People search`,categories:[`deprecated`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-06-13`,replacedBy:`people:profiles:crustdata@2`},description:`Filter-based people search.`,tags:[H.PEOPLE_PROFILES],docPath:$(FU),cost:HU,provider:`crustdata`,defaultPayload:{search_id:FU,connector:null,config:{limit:100,cursor:``,output_fields:{name:{enabled:!0,alias:``},job_title:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},company_website_url:{enabled:!0,alias:``},crustdata_person_match:{enabled:!0,alias:``}},filters:{profile_headline_keywords:{include:[],exclude:[]},languages:{include:[],exclude:[]},profile_summary_keywords:{include:[],exclude:[]},previous_job_titles:{include:[],exclude:[]},current_employers:{include:[],exclude:[]},current_school_names:{include:[],exclude:[]},years_at_current_company:[],certifications:{include:[],exclude:[]},honors:{include:[],exclude:[]},current_employers_linkedin_industries:{include:[],exclude:[]},current_employers_website_urls:{include:[],exclude:[]},previous_employers_website_urls:{include:[],exclude:[]},current_seniority_levels:{include:[],exclude:[]},previous_seniority_levels:{include:[],exclude:[]},degree_names:{include:[],exclude:[]},locations:{include:[],exclude:[]},profile_languages:{include:[],exclude:[]},recently_changed_jobs:null,extracurricular_activities:{include:[],exclude:[]},school_names:{include:[],exclude:[]},fields_of_study:{include:[],exclude:[]},previous_employers:{include:[],exclude:[]},current_job_titles:{include:[],exclude:[]},skills:{include:[],exclude:[]},years_of_experience:[],previous_employers_linkedin_industries:{include:[],exclude:[]}}}}},qU=`people:profiles:crustdata@2`,JU=_(`name`),YU=_(`company_domain`),XU=_(`profile_url`),ZU=_(`job_title`),QU=_(`crustdata_person_match`),$U=r.object({search_id:r.literal(qU),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of search results per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[JU.name]:A({fieldName:JU.name}),[YU.name]:A({fieldName:YU.name}),[XU.name]:A({fieldName:XU.name}),[ZU.name]:A({fieldName:ZU.name}),[QU.name]:A({fieldName:QU.name})})),filters:r.object({locations:N({path:`config.filters.locations`,sectionKey:`config.filters`,label:`Location`,placeholder:X(`location`),optionsDef:g(`location.names`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),current_job_titles:k({path:`config.filters.current_job_titles`,sectionKey:`config.filters`,label:`Title`,description:``,placeholder:X(`title`),order:1,groupPath:`config.filters.current_employer`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),current_employer_names:k({path:`config.filters.current_employer_names`,sectionKey:`config.filters`,label:`Company name`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),current_employer_domains:k({path:`config.filters.current_employer_domains`,sectionKey:`config.filters`,label:`Company domain`,placeholder:X(`company_domain`),description:``,maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),current_employer_industries:N({path:`config.filters.current_employer_industries`,sectionKey:`config.filters`,label:`Industry`,groupPath:`config.filters.current_employer`,placeholder:X(`industry`),description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),years_at_current_company:M({path:`config.filters.years_at_current_company`,sectionKey:`config.filters`,label:`Years at current company`,placeholder:`1 to 2 years`,disableSearch:!1,required:!1,groupPath:`config.filters.current_employer`,description:``,options:h(`person.year_brackets`)}).default([]),previous_employer_domains:k({path:`config.filters.previous_employer_domains`,sectionKey:`config.filters`,label:`Previous employer domain`,description:``,placeholder:X(`company_domain`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),previous_seniority_levels:Dd({path:`config.filters.previous_seniority_levels`,sectionKey:`config.filters`,label:`Previous seniority`,placeholder:X(`seniority`),disableSearch:!0,optionsDef:Xe(`person.seniority.crustdata`),description:``,groupPath:`config.filters.experience`}).default({include:[],exclude:[]}),previous_employer_names:k({path:`config.filters.previous_employer_names`,sectionKey:`config.filters`,label:`Previous employer`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),previous_job_titles:k({path:`config.filters.previous_job_titles`,sectionKey:`config.filters`,label:`Previous title`,description:``,placeholder:X(`title`),groupPath:`config.filters.experience`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),previous_employer_industries:N({path:`config.filters.previous_employer_industries`,sectionKey:`config.filters`,label:`Previous employer industries`,placeholder:X(`industry`),groupPath:`config.filters.experience`,description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),profile_headline_keywords:k({path:`config.filters.profile_headline_keywords`,sectionKey:`config.filters`,label:`Headline contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`headline_keywords`)}).default({include:[],exclude:[]}),profile_summary_keywords:k({path:`config.filters.profile_summary_keywords`,sectionKey:`config.filters`,label:`Profile about section contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`profile_keywords`)}).default({include:[],exclude:[]}),profile_languages:Dd({path:`config.filters.profile_languages`,sectionKey:`config.filters`,label:`Profile language`,placeholder:X(`languages`),optionsDef:Xe(`person.languages.crustdata`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),languages:Dd({path:`config.filters.languages`,sectionKey:`config.filters`,label:`Spoken language`,placeholder:X(`languages_1`),optionsDef:Xe(`person.languages.crustdata`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),skills:N({path:`config.filters.skills`,sectionKey:`config.filters`,label:`Skills`,description:``,placeholder:X(`skills`),groupPath:`config.filters.skills`,optionsDef:g(`person.skills`)}).default({include:[],exclude:[]}),years_of_experience:M({path:`config.filters.years_of_experience`,sectionKey:`config.filters`,label:`Years of experience`,placeholder:`1 to 2 years`,disableSearch:!0,description:``,required:!1,options:h(`person.year_brackets`),groupPath:`config.filters.experience`}).default([]),current_seniority_levels:Dd({path:`config.filters.current_seniority_levels`,sectionKey:`config.filters`,disableSearch:!0,label:`Seniority`,placeholder:X(`seniority`),optionsDef:Xe(`person.seniority.crustdata`),description:``,groupPath:`config.filters.experience`}).default({include:[],exclude:[]}),certifications:k({path:`config.filters.certifications`,sectionKey:`config.filters`,label:`Certifications`,groupPath:`config.filters.certifications_honors`,placeholder:X(`certification`),description:``}).default({include:[],exclude:[]}),honors:k({path:`config.filters.honors`,sectionKey:`config.filters`,label:`Honors`,groupPath:`config.filters.certifications_honors`,placeholder:X(`honor`),description:``}).default({include:[],exclude:[]}),recently_changed_jobs:Md({path:`config.filters.recently_changed_jobs`,sectionKey:`config.filters`,label:`Recently changed jobs`,description:``,defaultValue:null,groupPath:`config.filters.activities`}),fields_of_study:N({path:`config.filters.fields_of_study`,sectionKey:`config.filters`,label:`Fields of study`,placeholder:X(`field_of_study`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.field_of_study`)}).default({include:[],exclude:[]}),degree_names:N({path:`config.filters.degree_names`,sectionKey:`config.filters`,label:`Degree names`,placeholder:X(`degree_name`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.degree.crustdata`)}).default({include:[],exclude:[]}),school_names:N({path:`config.filters.school_names`,sectionKey:`config.filters`,label:`School names`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),current_school_names:N({path:`config.filters.current_school_names`,sectionKey:`config.filters`,label:`Currently enrolled at`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),extracurricular_activities:k({path:`config.filters.extracurricular_activities`,sectionKey:`config.filters`,label:`Extracurricular activities`,description:``,placeholder:X(`extracurricular`),groupPath:`config.filters.education`,suggestionsDef:g(`person.education_activities.crustdata`)}).default({include:[],exclude:[]}),post_processing_exclude_company_profile_urls:O({path:`config.filters.post_processing_exclude_company_profile_urls`,sectionKey:`config.filters`,groupPath:`config.filters.post_processing`,label:`Exclude company profiles`,maxItems:5e3,placeholder:`https://linkedin.com/company/...`,description:`Company LinkedIn URLs (https://www.linkedin.com/company/{slug}) removed from the search results`}).default([]),post_processing_exclude_company_names:O({path:`config.filters.post_processing_exclude_company_names`,sectionKey:`config.filters`,groupPath:`config.filters.post_processing`,label:`Exclude company names`,maxItems:5e3,placeholder:X(`company_name`),description:`Company names removed from the search results`}).default([])}).check(e=>{let{post_processing_exclude_company_profile_urls:t,post_processing_exclude_company_names:n,...r}=e.value;oV(r)&&e.issues.push({code:`custom`,message:`You must set at least one meaningful filter.`,input:e.value})})})}),eW={match:`any`,fields:[{fieldName:`profile_url`}]},tW={allowManagedConnection:!0,mode:`per_page`,credits:{default:5},info:`1 page = 100 records; 200 results = 2 pages`},nW=`people-profiles-crustdata-v2`,rW=class extends Z{billing={billableOperation:nW,cost:tW};searchId=qU;schema=$U;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[JU.name]:this.catalogOutput(JU),[YU.name]:this.catalogOutput(YU),[XU.name]:this.catalogOutput(XU),[ZU.name]:this.catalogOutput(ZU),[QU.name]:this.catalogOutput(QU)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_people_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return eW}},iW=$U,aW={searchId:qU,billableOperation:nW,baseSearch:Q(`people:profiles:crustdata@2`),paginationType:`cursor`,label:`People search`,categories:[`deprecated`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:{deprecatedOn:`2026-09-19`,replacedBy:`people:profiles:crustdata@3`},description:`Filter-based people search on Crustdata's dataset โ widest filter surface: employer, growth, and LinkedIn signals.`,tags:[H.PEOPLE_PROFILES],docPath:$(qU),cost:tW,provider:`crustdata`,defaultPayload:{search_id:qU,connector:null,config:{limit:100,cursor:``,output_fields:{name:{enabled:!0,alias:``},job_title:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},crustdata_person_match:{enabled:!0,alias:``}},filters:{profile_headline_keywords:{include:[],exclude:[]},languages:{include:[],exclude:[]},profile_summary_keywords:{include:[],exclude:[]},previous_job_titles:{include:[],exclude:[]},current_employer_names:{include:[],exclude:[]},current_school_names:{include:[],exclude:[]},years_at_current_company:[],certifications:{include:[],exclude:[]},honors:{include:[],exclude:[]},current_employer_industries:{include:[],exclude:[]},current_employer_domains:{include:[],exclude:[]},previous_employer_domains:{include:[],exclude:[]},current_seniority_levels:{include:[],exclude:[]},previous_seniority_levels:{include:[],exclude:[]},degree_names:{include:[],exclude:[]},locations:{include:[],exclude:[]},profile_languages:{include:[],exclude:[]},recently_changed_jobs:null,extracurricular_activities:{include:[],exclude:[]},school_names:{include:[],exclude:[]},fields_of_study:{include:[],exclude:[]},previous_employer_names:{include:[],exclude:[]},current_job_titles:{include:[],exclude:[]},skills:{include:[],exclude:[]},years_of_experience:[],previous_employer_industries:{include:[],exclude:[]},post_processing_exclude_company_profile_urls:[],post_processing_exclude_company_names:[]}}}},oW=`entries:attio@1`,sW=_(`attio_entry_id`),cW=_(`attio_record_id`),lW=_(`attio_entry_match`),uW=r.object({search_id:r.literal(oW),connector:zu(),config:r.object({list:Fd({path:`config.list`,groupPath:`config.general`,sectionKey:`general`,label:`List`,required:!0,info:`Attio lists are where pipelines live โ entries carry list-level attributes like stage on top of their parent record.`,enabledIf:v(`attio`),optionsDef:Ip}),custom_properties:bB(`parent.name`,Up(`list`)),filters:xB(`stage`),stage:Fd({path:`config.stage`,groupPath:`config.general`,sectionKey:`general`,label:`Stage`,required:!1,info:`The selected list's status attribute โ this workspace's actual titles.`,enabledIf:v(`attio`),optionsDef:Lp(`list`),multiple:!0}),saved_view:SB(Rp({target:`lists`,fromField:`list`})),created_within:CB(),limit:vB(),page_number:yB(),output_fields:I(r.object({[sW.name]:A({fieldName:sW.name}),[cW.name]:A({fieldName:cW.name}),[lW.name]:A({fieldName:lW.name})}))}).check(e=>wB(e,[`stage`,`created_within`]))}),dW={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own Attio workspace is free.`},fW=`entries-attio-v1`,pW=class extends Z{billing={billableOperation:fW,cost:dW};searchId=oW;schema=uW;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[sW.name]:this.catalogOutput(sW),[cW.name]:this.catalogOutput(cW),[lW.name]:this.catalogOutput(lW)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_query`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`attio_entry_id`}]}}async getAgentContext(e){return Wp(e,{objects:`discover`,includeLists:!0})}},mW=uW,hW={searchId:oW,billableOperation:fW,baseSearch:Q(oW),outputFieldMode:`static`,paginationType:`page_number`,label:`Attio list entries`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List entries of an Attio list โ where pipelines live. Each row carries the entry id, the parent record id, and a JSON with the entry's list-level attributes (like stage) plus picked parent-record attributes.`,tags:[H.NEW],keywords:[`crm`,`pipeline`,`stage`,`kanban`,`workflow`,`import`],docPath:$(oW),guide:"Attio pipelines are lists: pick the list, then filter on ENTRY attributes (stage titles come from the list's own status attribute) or on the parent record via `parent.` refs (e.g. `parent.domains.root_domain`, `parent.name.full_name`). Picked `parent.<slug>` attributes land in the entry JSON's custom_properties. attio_record_id is the PARENT record โ chain it into record:lookup/record:update. A saved view of the list replaces the filter fields. Attio reports no total count โ page until a short page.",cost:dW,provider:`attio`,defaultPayload:{search_id:oW,connector:{strategy:`first`,connections:[]},config:{list:``,custom_properties:[],filters:null,stage:[],saved_view:``,created_within:``,limit:100,page_number:1,output_fields:{attio_entry_id:{enabled:!0,alias:``},attio_record_id:{enabled:!0,alias:``},attio_entry_match:{enabled:!0,alias:``}}}}},gW=`events:googlecalendar@1`,_W=_(`google_calendar_event_id`),vW=_(`event_title`),yW=_(`attendee_emails`),bW=_(`calendar_event_match`),xW=[{value:`meeting`,label:`Meeting`},{value:`out_of_office`,label:`Out of office`},{value:`focus_time`,label:`Focus time`},{value:`working_location`,label:`Working location`},{value:`birthday`,label:`Birthday`},{value:`from_gmail`,label:`From Gmail`}],SW=[`meeting`],CW=[{label:`Primary calendar (primary)`,value:`primary`},{label:`Team calendar (sample)`,value:`cal-sandbox-1`}];async function wW(e){let t=await fetch(`https://www.googleapis.com/calendar/v3/users/me/calendarList`,{headers:{accept:`application/json`,Authorization:`Bearer ${e}`}});if(!t.ok){let e=await t.text();throw Error(`Failed to list Google calendars: ${e}`)}return await t.json()}const TW=r.object({search_id:r.literal(gW),connector:zu(),config:r.object({calendar_id:Fd({path:`config.calendar_id`,groupPath:`config.general`,sectionKey:`general`,label:`Calendar`,required:!1,info:`Defaults to the account's primary calendar.`,guide:`Defaults to the account's primary calendar.`,enabledIf:v(`googlecalendar`),optionsDef:{requires:{connection:`googlecalendar`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return CW;if(!t)throw Error(`A Google Calendar connection is required to list calendars.`);let r=((await wW(t)).items||[]).filter(e=>!!e?.id).map(e=>({label:`${e.summaryOverride||e.summary||e.id}${e.primary?` (primary)`:``}`,value:e.id}));return e?r.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):r}}}),time_window:Pd({required:!1,path:`config.time_window`,groupPath:`config.general`,sectionKey:`general`,label:`Time window`,description:`Rolling window relative to when the search runs, not calendar days.`,options:[{label:`Any time`,value:``},{label:`Next 24 hours`,value:`n24h`},{label:`Next 2 days`,value:`n48h`},{label:`Next 7 days`,value:`n7d`},{label:`Next 30 days`,value:`n30d`},{label:`Last 24 hours`,value:`l24h`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`}]}).default(`n7d`),event_types:M({path:`config.event_types`,groupPath:`config.general`,sectionKey:`general`,label:`Event types`,placeholder:`Meeting`,disableSearch:!1,required:!1,description:`Defaults to meetings only.`,options:xW}).default(SW),limit:P({path:`config.limit`,min:1,max:250,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of events per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[_W.name]:A({fieldName:_W.name}),[vW.name]:A({fieldName:vW.name}),[yW.name]:A({fieldName:yW.name}),[bW.name]:A({fieldName:bW.name})}))})}),EW={match:`any`,fields:[{fieldName:`google_calendar_event_id`}]},DW={allowManagedConnection:!1,mode:null,credits:null,info:`Google Calendar searches are free โ you bring your own Google Calendar connection.`},OW=`events-googlecalendar-v1`,kW=class extends Z{billing={billableOperation:OW,cost:DW};searchId=gW;schema=TW;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[_W.name]:this.catalogOutput(_W),[vW.name]:this.catalogOutput(vW),[yW.name]:this.catalogOutput(yW),[bW.name]:this.catalogOutput(bW)}}getConnectionsRequirements(){return[{provider:`googlecalendar`,rateLimitOperation:`googlecalendar_api`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return EW}async getAgentContext(e){if(e.environment===`sandbox`)return{summary:"Sandbox: calendar list is synthetic. Available calendars: `primary`, `cal-sandbox-1`."};let t=e.connectionSecrets.googlecalendar;if(!t)return null;let n=((await wW(t)).items||[]).filter(e=>!!e?.id).map(e=>({id:e.id,name:e.summaryOverride||e.summary||e.id,timezone:e.timeZone||null,primary:!!e.primary}));return{summary:`Calendars visible to this connection:\n${n.map(e=>`- \`${e.id}\` โ ${e.name}${e.primary?` (primary)`:``}`).join(`
|
|
86
86
|
`)}`,data:{calendars:n}}}},AW=TW,jW={searchId:gW,billableOperation:OW,baseSearch:Q(gW),outputFieldMode:`static`,paginationType:`cursor`,label:`Google Calendar events`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List events from a Google Calendar: one row per event (recurring events expanded into occurrences) with title, attendee emails, and a standardized calendar_event_match object (times, timezone, type, location, organizer, meeting link).`,tags:[H.EVENTS,H.NEW],keywords:[`gcal`,`meetings`,`appointments`,`agenda`,`schedule`,`meeting prep`],docPath:$(gW),guide:"Time windows are rolling intervals relative to when the search runs (UTC), not calendar days โ `n24h` means 'the next 24 hours from now'. Recurring events arrive expanded, one row per occurrence, each with its own stable instance ID (the dedup key). Event types are normalized cross-provider values (meeting, out_of_office, focus_time, working_location, birthday, from_gmail); by default ONLY meeting events are returned โ add other values to event_types to include them. Start/end/timezone/location/meeting link live inside calendar_event_match (expand with json:extract:multi@1); all-day events carry bare dates there, and the end date is exclusive. Cancelled events are not returned. 'Any time' on a calendar with long recurring series pages very far โ prefer a window. attendee_emails excludes meeting rooms and is the natural input for company-domain enrichment (e.g. company:domain:email@1 โ company:newssummary:domain@1 for meeting prep).",cost:DW,provider:`googlecalendar`,defaultPayload:{search_id:gW,connector:{strategy:`first`,connections:[]},config:{calendar_id:``,time_window:`n7d`,event_types:SW,limit:100,cursor:``,output_fields:{google_calendar_event_id:{enabled:!0,alias:``},event_title:{enabled:!0,alias:``},attendee_emails:{enabled:!0,alias:``},calendar_event_match:{enabled:!0,alias:``}}}}},MW=`jobs:crustdata@1`,NW=[{label:`Any time`,value:``},{label:`Last 24 hours`,value:`l1d`},{label:`Last 7 days`,value:`l7d`},{label:`Last 30 days`,value:`l30d`},{label:`Last 3 months`,value:`l3m`},{label:`Last 6 months`,value:`l6m`},{label:`Last 12 months`,value:`l12m`}],PW=[{label:`Any time`,value:``},{label:`Last month`,value:`l1m`},{label:`Last 3 months`,value:`l3m`},{label:`Last 6 months`,value:`l6m`},{label:`Last 12 months`,value:`l12m`},{label:`Last 2 years`,value:`l24m`}],FW=_(`company_domain`),IW=_(`job_posting_title`),LW=_(`job_url`),RW=_(`open_job_match`),zW=_(`open_job_company_match`),BW=r.object({search_id:r.literal(MW),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of search results per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[FW.name]:A({fieldName:FW.name}),[IW.name]:A({fieldName:IW.name}),[LW.name]:A({fieldName:LW.name}),[RW.name]:A({fieldName:RW.name}),[zW.name]:A({fieldName:zW.name})})),filters:r.object({job_titles:k({path:`config.filters.job_titles`,sectionKey:`config.filters`,label:`Job title`,description:``,placeholder:X(`title`),maxItems:100,groupPath:`config.filters.job`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),job_categories:Id({path:`config.filters.job_categories`,sectionKey:`config.filters`,label:`Job category`,description:``,placeholder:`Engineering, Sales, ...`,disableSearch:!1,required:!1,maxItems:50,groupPath:`config.filters.job`,optionsDef:g(`job.categories.crustdata`)}).default([]),workplace_types:M({path:`config.filters.workplace_types`,sectionKey:`config.filters`,label:`Workplace type`,description:``,placeholder:`Remote, Hybrid, ...`,disableSearch:!0,required:!1,options:h(`job.workplace_type`),groupPath:`config.filters.job`}).default([]),posted_within:Pd({path:`config.filters.posted_within`,sectionKey:`config.filters`,label:`Posted within`,description:``,placeholder:`Last 30 days, last 3 months, ...`,options:NW,required:!1,defaultValue:`l30d`,groupPath:`config.filters.job`}).default(`l30d`),description_keywords:O({path:`config.filters.description_keywords`,sectionKey:`config.filters`,label:`Description contains keywords`,description:``,placeholder:`Kubernetes, Salesforce, ...`,maxItems:10,groupPath:`config.filters.job`}).default([]),job_locations:Id({path:`config.filters.job_locations`,sectionKey:`config.filters`,label:`Job location`,description:`Where the job is advertised; not the company's HQ.`,disableSearch:!1,placeholder:X(`location`),required:!1,groupPath:`config.filters.location`,optionsDef:g(`location.names`)}).default([]),company_domains:k({path:`config.filters.company_domains`,sectionKey:`config.filters`,label:`Company domain`,description:``,placeholder:X(`company_domain`),maxItems:1e3,groupPath:`config.filters.company`,suggestionsDef:g(`company.domains`)}).default({include:[],exclude:[]}),company_names:k({path:`config.filters.company_names`,sectionKey:`config.filters`,label:`Company name`,description:``,placeholder:X(`company_name`),maxItems:1e3,groupPath:`config.filters.company`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),company_industries:N({path:`config.filters.company_industries`,sectionKey:`config.filters`,label:`Industry`,description:``,placeholder:X(`industry`),groupPath:`config.filters.company`,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),company_hq_countries:Dd({path:`config.filters.company_hq_countries`,sectionKey:`config.filters`,label:`HQ country`,description:``,placeholder:`United States, Germany, ...`,optionsDef:Xe(`location.country_codes`),groupPath:`config.filters.company`}).default({include:[],exclude:[]}),company_headcount_brackets:M({path:`config.filters.company_headcount_brackets`,sectionKey:`config.filters`,label:`Headcount`,description:``,placeholder:`1-10`,disableSearch:!0,required:!1,options:h(`company.headcount`),groupPath:`config.filters.company_size`}).default([]),company_last_funding_round_types:M({path:`config.filters.company_last_funding_round_types`,sectionKey:`config.filters`,label:`Last funding round`,description:``,placeholder:`Series A`,disableSearch:!0,required:!1,options:h(`company.last_funding_round.crustdata`),groupPath:`config.filters.financials`}).default([]),company_last_funding_within:Pd({path:`config.filters.company_last_funding_within`,sectionKey:`config.filters`,label:`Last funding raised within`,description:`Only companies whose latest funding round closed within this time window.`,placeholder:`Last month, last year, ...`,options:PW,required:!1,defaultValue:``,groupPath:`config.filters.financials`}).default(``)}).check(e=>{let t=e.value;t.job_titles.include.length>0||t.job_titles.exclude.length>0||t.job_categories.length>0||t.workplace_types.length>0||t.description_keywords.length>0||t.job_locations.length>0||t.company_domains.include.length>0||t.company_domains.exclude.length>0||t.company_names.include.length>0||t.company_names.exclude.length>0||t.company_industries.include.length>0||t.company_industries.exclude.length>0||t.company_hq_countries.include.length>0||t.company_hq_countries.exclude.length>0||t.company_headcount_brackets.length>0||t.company_last_funding_round_types.length>0||t.company_last_funding_within!==``||e.issues.push({code:`custom`,message:`You must set at least one filter besides the posted-within window.`,input:e.value})})})}),VW={match:`any`,fields:[{fieldName:`job_url`}]},HW={allowManagedConnection:!0,mode:`per_result`,credits:{default:.19,level1:{credits:.1,weight:5}},info:`Billed per job returned.`},UW=`jobs-crustdata-v1`,WW=class extends Z{billing={billableOperation:UW,cost:HW};searchId=MW;schema=BW;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[FW.name]:this.catalogOutput(FW),[IW.name]:this.catalogOutput(IW),[LW.name]:this.catalogOutput(LW),[RW.name]:this.catalogOutput(RW),[zW.name]:this.catalogOutput(zW)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_job_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return VW}},GW=BW,KW={searchId:MW,billableOperation:UW,baseSearch:Q(MW),paginationType:`cursor`,label:`Job search`,categories:[`companies`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Find companies hiring for a role. Filter Crustdata's indexed job listings by title, category, location and posting date, and by the hiring company's firmographics.`,tags:[H.COMPANY_PROFILES],keywords:[`hiring`,`open roles`,`job postings`,`job openings`,`recruiting`,`talent`,`vacancies`],docPath:$(MW),guide:"The hiring-signal dataset: one row per JOB POSTING, carrying both the posting and the hiring company's firmographics โ no follow-up company enrichment needed. A company that has several matching openings therefore appears on several rows; to turn the result into an account list, chain `rows:dedupe@1` on `company_domain`. Postings reach back years, so keep `posted_within` tight (it defaults to the last 30 days) when the point is that a company is hiring RIGHT NOW. When the goal is a FULL list of companies hiring for a role, enter here โ every row arrives pre-qualified on hiring; qualifying an existing company list per-row through a jobs-count pipe covers materially fewer companies.",cost:HW,provider:`crustdata`,defaultPayload:{search_id:MW,connector:null,config:{limit:100,cursor:``,output_fields:{company_domain:{enabled:!0,alias:``},job_posting_title:{enabled:!0,alias:``},job_url:{enabled:!0,alias:``},open_job_match:{enabled:!0,alias:``},open_job_company_match:{enabled:!0,alias:``}},filters:{job_titles:{include:[],exclude:[]},job_categories:[],workplace_types:[],posted_within:`l30d`,description_keywords:[],job_locations:[],company_domains:{include:[],exclude:[]},company_names:{include:[],exclude:[]},company_industries:{include:[],exclude:[]},company_hq_countries:{include:[],exclude:[]},company_headcount_brackets:[],company_last_funding_round_types:[],company_last_funding_within:``}}}},qW=`leads:salesforce@1`,JW=_(`salesforce_record_id`),YW=_(`first_name`),XW=_(`last_name`),ZW=_(`email`),QW=_(`company_name`),$W=_(`salesforce_lead_match`),eG=r.object({search_id:r.literal(qW),connector:zu(),config:r.object({custom_properties:Wz(),filters:Gz(`LeadSource`),list_view:Kz(`Lead`),lead_status:Fd({path:`config.lead_status`,groupPath:`config.general`,sectionKey:`general`,label:`Lead status`,required:!1,info:`The org's actual status values โ custom entries included.`,enabledIf:v(`salesforce`),optionsDef:sp}),include_converted:jd({path:`config.include_converted`,groupPath:`config.general`,sectionKey:`general`,label:`Include converted leads`,description:`Converted leads are read-only history pointing at the contact they became โ excluded by default.`,defaultValue:!1}),owner:qz(),created_within:Yz(),modified_within:Xz(),limit:Zz(),cursor:Qz(),output_fields:I(r.object({[JW.name]:A({fieldName:JW.name}),[YW.name]:A({fieldName:YW.name}),[XW.name]:A({fieldName:XW.name}),[ZW.name]:A({fieldName:ZW.name}),[QW.name]:A({fieldName:QW.name}),[$W.name]:A({fieldName:$W.name})}))}).check(e=>$z([`lead_status`,`owner`,`created_within`,`modified_within`])(e))}),tG={allowManagedConnection:!1,mode:null,credits:null,info:`Salesforce searches are free โ you bring your own Salesforce connection.`},nG=`leads-salesforce-v1`,rG=class extends Z{billing={billableOperation:nG,cost:tG};searchId=qW;schema=eG;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[JW.name]:this.catalogOutput(JW),[YW.name]:this.catalogOutput(YW),[XW.name]:this.catalogOutput(XW),[ZW.name]:this.catalogOutput(ZW),[QW.name]:this.catalogOutput(QW),[$W.name]:this.catalogOutput($W)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitOperation:`salesforce_api`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`salesforce_record_id`}]}}async getAgentContext(e){return mp(e,{objects:[`Lead`],includeListViewsFor:[`Lead`]})}},iG=eG,aG={searchId:qW,billableOperation:nG,baseSearch:Q(qW),outputFieldMode:`static`,paginationType:`cursor`,label:`Salesforce leads`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List leads from your Salesforce org: identity columns (id, name, email, company) plus a JSON record with the standard field set. Converted leads are excluded by default; filter with field conditions or run one of the org's own list views.`,tags:[H.EMAIL,H.NEW],keywords:[`crm`,`sfdc`,`prospect`,`list`,`records`,`import`,`demand gen`],docPath:$(qW),guide:"Call get_provider_context first for the org's field API names and status values โ use them verbatim. Leads are pre-qualification records: Company is plain text (no account link), and converted leads (IsConverted = true) are read-only history excluded by default โ the JSON carries IsConverted/ConvertedContactId when you include them. Duplicate emails across leads are normal in demand-gen orgs. To find untouched leads, filter on `LastActivityDate` (e.g. `LastActivityDate < LAST_N_DAYS:90` โ closed tasks + events, not literal touches). `list_view` runs the org's own segmentation (XOR with filters/shortcuts). Results page by record id; rows the connected user cannot see are silently absent.",cost:tG,provider:`salesforce`,defaultPayload:{search_id:qW,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,list_view:``,lead_status:``,include_converted:!1,owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{salesforce_record_id:{enabled:!0,alias:``},first_name:{enabled:!0,alias:``},last_name:{enabled:!0,alias:``},email:{enabled:!0,alias:``},company_name:{enabled:!0,alias:``},salesforce_lead_match:{enabled:!0,alias:``}}}}},oG=`opportunities:salesforce@1`,sG=_(`salesforce_record_id`),cG=_(`deal_name`),lG=_(`deal_amount`),uG=_(`salesforce_opportunity_match`),dG=r.object({search_id:r.literal(oG),connector:zu(),config:r.object({custom_properties:Wz(),filters:Gz(`StageName`),list_view:Kz(`Opportunity`),status:Pd({required:!1,path:`config.status`,groupPath:`config.general`,sectionKey:`general`,label:`Status`,description:`Filters on Salesforce's computed IsClosed / IsWon โ org-invariant, unlike stage names.`,options:[{label:`Any`,value:`any`},{label:`Open`,value:`open`},{label:`Won`,value:`won`},{label:`Lost`,value:`lost`}]}).default(`any`),stage:Fd({path:`config.stage`,groupPath:`config.general`,sectionKey:`general`,label:`Stage`,required:!1,info:`The org's own OpportunityStage list.`,enabledIf:v(`salesforce`),optionsDef:ap}),amount:Ed({path:`config.amount`,groupPath:`config.general`,sectionKey:`general`,label:`Amount`,min:0,max:0xe8d4a51000,info:`In multi-currency orgs the bounds compare in the corporate currency.`}),owner:qz(),created_within:Yz(),modified_within:Xz(),limit:Zz(),cursor:Qz(),output_fields:I(r.object({[sG.name]:A({fieldName:sG.name}),[cG.name]:A({fieldName:cG.name}),[lG.name]:A({fieldName:lG.name}),[uG.name]:A({fieldName:uG.name})}))}).check(e=>$z([`stage`,`amount`,`owner`,`created_within`,`modified_within`])(e))}),fG={allowManagedConnection:!1,mode:null,credits:null,info:`Salesforce searches are free โ you bring your own Salesforce connection.`},pG=`opportunities-salesforce-v1`,mG=class extends Z{billing={billableOperation:pG,cost:fG};searchId=oG;schema=dG;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[sG.name]:this.catalogOutput(sG),[cG.name]:this.catalogOutput(cG),[lG.name]:this.catalogOutput(lG),[uG.name]:this.catalogOutput(uG)}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitOperation:`salesforce_api`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`salesforce_record_id`}]}}async getAgentContext(e){return mp(e,{objects:[`Opportunity`],includeStages:!0,includeListViewsFor:[`Opportunity`]})}},hG=dG,gG={searchId:oG,billableOperation:pG,baseSearch:Q(oG),outputFieldMode:`static`,paginationType:`cursor`,label:`Salesforce opportunities`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List opportunities from your Salesforce org: identity columns (id, name, amount) plus a JSON record with the standard field set (including IsClosed/IsWon). Filter by status, stage, amount, or field conditions โ or run one of the org's own list views.`,tags:[H.NEW],keywords:[`crm`,`sfdc`,`deal`,`pipeline`,`revenue`,`list`,`records`],docPath:$(oG),guide:"Filter open/won via `status` (computed IsClosed/IsWon โ org-invariant); `stage` values are OpportunityStage ApiNames from get_provider_context โ never assume a stage named 'Closed Won' exists. Close-date windows go through filter rows (CloseDate lte/gte with ISO dates or SOQL literals). In multi-currency orgs Amount bounds compare in the corporate currency. To find deals gone quiet, filter on `LastActivityDate` (e.g. `LastActivityDate < LAST_N_DAYS:30` โ closed tasks + events, not literal touches). `list_view` runs the org's own segmentation (XOR with filters/shortcuts). Results page by record id; rows the connected user cannot see are silently absent.",cost:fG,provider:`salesforce`,defaultPayload:{search_id:oG,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,list_view:``,status:`any`,stage:``,amount:{min:null,max:null},owner:``,created_within:``,modified_within:``,limit:100,cursor:``,output_fields:{salesforce_record_id:{enabled:!0,alias:``},deal_name:{enabled:!0,alias:``},deal_amount:{enabled:!0,alias:``},salesforce_opportunity_match:{enabled:!0,alias:``}}}}},_G=`owners:hubspot@1`,vG=_(`hubspot_owner_id`),yG=_(`email`),bG=_(`first_name`),xG=_(`last_name`),SG=_(`hubspot_owned_count`),CG=_(`hubspot_owner_match`),wG=r.object({search_id:r.literal(_G),connector:zu(),config:r.object({email:j({path:`config.email`,groupPath:`config.general`,inputType:`text`,label:`Email`,sectionKey:`general`,info:`Only return the owner with this exact email.`,guide:`Returns only the owner with this exact email.`}).nullable(),include_archived:jd({path:`config.include_archived`,groupPath:`config.general`,sectionKey:`general`,label:`Include deactivated owners`,description:``,defaultValue:!1}),owned_object_type:Pd({required:!1,path:`config.owned_object_type`,groupPath:`config.counts`,sectionKey:`general`,label:`Count owned`,description:"Which records to count per owner (via `hubspot_owner_id`).",options:[{label:`Companies`,value:`companies`},{label:`Contacts`,value:`contacts`},{label:`Deals`,value:`deals`}]}).default(`companies`),min_owned_count:P({path:`config.min_owned_count`,min:0,groupPath:`config.counts`,sectionKey:`general`,label:`Minimum owned`,description:`Only return owners owning MORE than this many records. Counting costs one search request per owner (~5/second).`}).nullable(),include_ownership_counts:jd({path:`config.include_ownership_counts`,groupPath:`config.counts`,sectionKey:`general`,label:`Include ownership counts`,description:`Adds an owned-record count column (one search request per owner, ~5/second).`,defaultValue:!0}),limit:P({path:`config.limit`,min:1,max:2e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Maximum number of owners returned.`}).default(500),output_fields:I(r.object({[vG.name]:A({fieldName:vG.name}),[yG.name]:A({fieldName:yG.name}),[bG.name]:A({fieldName:bG.name}),[xG.name]:A({fieldName:xG.name}),[SG.name]:A({fieldName:SG.name}),[CG.name]:A({fieldName:CG.name})}))})}),TG={allowManagedConnection:!1,mode:null,credits:null,info:`Listing your own HubSpot owners is free.`},EG=`owners-hubspot-v1`,DG=class extends Z{billing={billableOperation:EG,cost:TG};searchId=_G;schema=wG;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[vG.name]:this.catalogOutput(vG),[yG.name]:this.catalogOutput(yG),[bG.name]:this.catalogOutput(bG),[xG.name]:this.catalogOutput(xG),[SG.name]:this.catalogOutput(SG),[CG.name]:this.catalogOutput(CG)}}getConnectionsRequirements(){return[{provider:`hubspot`,rateLimitOperation:`hubspot_crm_search`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`hubspot_owner_id`}]}}async getAgentContext(e){return Em(e,{objectTypes:[]})}},OG=wG,kG={searchId:_G,billableOperation:EG,baseSearch:Q(_G),outputFieldMode:`static`,paginationType:`cursor`,label:`HubSpot owners`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List the owners (users) of your HubSpot portal, optionally with how many companies, contacts, or deals each owns โ e.g. all owners with more than 50 companies.`,tags:[H.FIELDS,H.NEW],keywords:[`crm`,`users`,`sales reps`,`assignment`,`rollup`,`count`],docPath:$(_G),guide:"HubSpot has no aggregation API โ ownership counts are computed with one count-search per owner against the portal's shared 5 requests/second search budget (expect ~N/5 seconds for N owners). Counts are accurate beyond the 10,000-result search cap. The owner id column matches `hubspot_owner_id` values on records.",cost:TG,provider:`hubspot`,defaultPayload:{search_id:_G,connector:{strategy:`first`,connections:[]},config:{email:``,include_archived:!1,owned_object_type:`companies`,min_owned_count:null,include_ownership_counts:!0,limit:500,output_fields:{hubspot_owner_id:{enabled:!0,alias:``},email:{enabled:!0,alias:``},first_name:{enabled:!0,alias:``},last_name:{enabled:!0,alias:``},hubspot_owned_count:{enabled:!0,alias:``},hubspot_owner_match:{enabled:!0,alias:``}}}}},AG=`people:attio@1`,jG=_(`attio_record_id`),MG=_(`email`),NG=_(`first_name`),PG=_(`last_name`),FG=_(`attio_person_match`),IG=r.object({search_id:r.literal(AG),connector:zu(),config:r.object({custom_properties:bB(`job_title`,Hp({target:`objects`,identifier:`people`})),filters:xB(`job_title`),has_email:jd({path:`config.has_email`,groupPath:`config.general`,sectionKey:`general`,defaultValue:!1,label:`Has email`,info:`Only people with at least one email address.`}),saved_view:SB(Rp({target:`objects`,identifier:`people`})),created_within:CB(),limit:vB(),page_number:yB(),output_fields:I(r.object({[jG.name]:A({fieldName:jG.name}),[MG.name]:A({fieldName:MG.name}),[NG.name]:A({fieldName:NG.name}),[PG.name]:A({fieldName:PG.name}),[FG.name]:A({fieldName:FG.name})}))}).check(e=>wB(e,[`has_email`,`created_within`]))}),LG={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own Attio workspace is free.`},RG=`people-attio-v1`,zG=class extends Z{billing={billableOperation:RG,cost:LG};searchId=AG;schema=IG;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[jG.name]:this.catalogOutput(jG),[MG.name]:this.catalogOutput(MG),[NG.name]:this.catalogOutput(NG),[PG.name]:this.catalogOutput(PG),[FG.name]:this.catalogOutput(FG)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_query`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`attio_record_id`}]}}async getAgentContext(e){return Wp(e,{objects:[`people`],includeViewsFor:[`people`]})}},BG=IG,VG={searchId:AG,billableOperation:RG,baseSearch:Q(AG),outputFieldMode:`static`,paginationType:`page_number`,label:`Attio people`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List people from your Attio workspace: identity columns (id, email, name) plus a JSON record with the standard attribute set and any custom attributes you pick.`,tags:[H.EMAIL,H.NEW],keywords:[`crm`,`list`,`records`,`import`,`contact`,`workspace`],docPath:$(AG),guide:`Call get_provider_context first for this workspace's attribute slugs and enumeration titles โ use api_slugs verbatim. Standard attributes become typed columns; everything else (standard set + picked custom attributes) rides in the person JSON โ expand it or chain json:extract downstream. Filters support any attribute (select/status = equality on workspace-defined titles); a saved view replaces the filter fields entirely. For staleness, filter or sort on last_interaction (targets its interacted_at timestamp) โ Attio's read-only communication-intelligence signal, auto-populated from members' synced email/calendar (e.g. people with no interaction in 90 days). Attio reports no total count โ page until a short page.`,cost:LG,provider:`attio`,defaultPayload:{search_id:AG,connector:{strategy:`first`,connections:[]},config:{custom_properties:[],filters:null,has_email:!1,saved_view:``,created_within:``,limit:100,page_number:1,output_fields:{attio_record_id:{enabled:!0,alias:``},email:{enabled:!0,alias:``},first_name:{enabled:!0,alias:``},last_name:{enabled:!0,alias:``},attio_person_match:{enabled:!0,alias:``}}}}},HG=`people:channelmembers:slack@1`,UG=_(`name`),WG=_(`email`),GG=_(`slack_user_id`),KG=_(`slack_member_match`),qG=[{value:`internal`,label:`Workspace members`},{value:`external`,label:`External (Slack Connect)`}],JG=[`internal`],YG=r.object({search_id:r.literal(HG),connector:zu(),config:r.object({channel_id:Fd({path:`config.channel_id`,groupPath:`config.general`,sectionKey:`general`,label:`Channel`,required:!0,info:"Only public channels and private channels the pipe0 app has been invited to are listed. Slack Connect channels are usually private, so run `/invite @pipe0` in one to make it selectable at all.",enabledIf:v(`slack`),optionsDef:nj}),include_bots:jd({path:`config.include_bots`,groupPath:`config.general`,sectionKey:`general`,label:`Include bots`,description:`Also list app/bot members of the channel.`,defaultValue:!1}),member_types:M({path:`config.member_types`,groupPath:`config.general`,sectionKey:`general`,label:`Member types`,placeholder:`Workspace members`,disableSearch:!0,required:!0,description:`Defaults to workspace members only.`,info:"External (Slack Connect) members are not in the workspace user directory. Invite the pipe0 app to the shared channel (`/invite @pipe0`) or they return as ID-only rows โ and their email is never exposed.",guide:"Select only `external` to list just the partner/customer side of a shared channel.",options:qG}).default(JG),limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of members per page`}).default(200),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[UG.name]:A({fieldName:UG.name}),[WG.name]:A({fieldName:WG.name}),[GG.name]:A({fieldName:GG.name}),[KG.name]:A({fieldName:KG.name})}))})}),XG={match:`any`,fields:[{fieldName:`slack_user_id`}]},ZG={allowManagedConnection:!1,mode:null,credits:null,info:`Slack searches are free โ you bring your own Slack connection.`},QG=`people-channelmembers-slack-v1`,$G=class extends Z{billing={billableOperation:QG,cost:ZG};searchId=HG;schema=YG;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[UG.name]:this.catalogOutput(UG),[WG.name]:this.catalogOutput(WG),[GG.name]:this.catalogOutput(GG),[KG.name]:this.catalogOutput(KG)}}getConnectionsRequirements(){return[{provider:`slack`,rateLimitOperation:`slack_api_read`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return XG}async getAgentContext(e){if(e.environment===`sandbox`)return{summary:'Sandbox: channel list is synthetic. Available channels: `C0SANDBOX001` (#demo-general), `C0SANDBOX002` (#demo-alerts). `config.member_types` defaults to `["internal"]`; selecting `"external"` adds synthetic Slack Connect members, including one unresolvable ID-only row.'};let t=this.payload.config.channel_id,n=Array.isArray(t)?t[0]:t;if(!n)return null;let r=e.connectionSecrets.slack;if(!r)return null;let i=await(await fetch(`https://slack.com/api/conversations.info?channel=${encodeURIComponent(n)}`,{headers:{Authorization:`Bearer ${r}`},signal:AbortSignal.timeout(1e4)})).json();if(!i.ok||!i.channel)throw new q.HttpError({msg:i.error??`slack_error`});let a=i.channel,o=a.name?`#${a.name}`:n,s=!!a.is_ext_shared||!!a.is_org_shared,c=a.is_member!==!1,l=a.shared_team_ids?.length??0;return{summary:s?c?`${o} is a Slack Connect channel${l?` shared with ${l} team(s)`:``}. The pipe0 app is in the channel, so external members' names and titles resolve. Add \`"external"\` to \`config.member_types\` to include them โ their email is never returned (\`users:read.email\` is workspace-scoped), and each row is flagged \`slack_member_match.is_external\`.`:`${o} is a Slack Connect channel, but the pipe0 app is NOT a member, so external members cannot be resolved โ they come back as ID-only rows (\`is_external: true\`, name and email null). Ask the user to run \`/invite @pipe0\` in ${o}, or leave \`config.member_types\` at \`["internal"]\`.`:`${o} is not a Slack Connect channel โ every member is in the workspace directory. Leave \`config.member_types\` at \`["internal"]\`.`,data:{channel_name:a.name??null,is_ext_shared:!!a.is_ext_shared,is_org_shared:!!a.is_org_shared,is_member:c,shared_team_ids:a.shared_team_ids??[],pending_connected_team_ids:a.pending_connected_team_ids??[],external_members_resolvable:s&&c}}}},eK=YG,tK={searchId:HG,billableOperation:QG,baseSearch:Q(HG),outputFieldMode:`static`,paginationType:`cursor`,label:`Slack channel members`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List the members of a Slack channel: one row per person with full name, email address (when the workspace exposes it), Slack user ID, and a standardized slack_member_match object (handle, title, timezone, admin/guest flags).`,tags:[H.NEW],keywords:[`workspace`,`team roster`,`coworkers`,`colleagues`,`participants`,`audience`],docPath:$(HG),guide:`Rows come from the channel's member list, resolved against the workspace user directory. member_email/email is only present when the connection holds users:read.email AND the workspace exposes emails โ treat empty email as 'hidden', not 'does not exist'. Bots and app users are excluded unless include_bots is set; deactivated members are not in channels. slack_user_id is the join key for message:send-direct:slack@1 (DM each member) and the dedup key. The channel picker only sees public channels plus private channels the pipe0 app is in โ and Slack Connect channels are usually private, so a shared channel will not even be selectable until someone runs /invite @pipe0 in it. A bot token cannot enumerate private channels it is not a member of, so an absent channel means 'not invited', never 'does not exist'. Title/phone/timezone live inside slack_member_match (expand with json:extract:multi@1). member_types selects which members come back: 'internal' = the workspace directory (users.list), 'external' = Slack Connect members shared in from another workspace. Externals resolve to a name/title only while the pipe0 app is a member of the shared channel, and their email is never exposed โ check slack_member_match.is_external per row. Selecting only 'external' lists the partner/customer side of a shared channel. Members that cannot be resolved are dropped unless 'external' is selected. Call get_provider_context once a channel is picked: it reports whether that channel is Slack Connect and whether the app is in it.`,cost:ZG,provider:`slack`,defaultPayload:{search_id:HG,connector:{strategy:`first`,connections:[]},config:{channel_id:``,include_bots:!1,member_types:JG,limit:200,cursor:``,output_fields:{name:{enabled:!0,alias:``},email:{enabled:!0,alias:``},slack_user_id:{enabled:!0,alias:``},slack_member_match:{enabled:!0,alias:``}}}}},nK=`people:entitysearch:parallel@1`,rK=_(`name`),iK=_(`job_title`),aK=_(`profile_url`),oK=_(`parallel_person_entity_match`),sK=r.object({search_id:r.literal(nK),connector:Bu(),config:r.object({objective:Nd({path:`config.objective`,sectionKey:`general`,groupPath:`config.general`,label:`Objective`,rows:4,minLength:10,placeholder:`Heads of Engineering at Series B fintech companies in the US`,description:`Plain-text natural-language description of the people to find.`}),limit:P({path:`config.limit`,min:5,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of entities to return (5โ1000).`}).default(100),output_fields:I(r.object({[rK.name]:A({fieldName:rK.name}),[iK.name]:A({fieldName:iK.name}),[aK.name]:A({fieldName:aK.name}),[oK.name]:A({fieldName:oK.name})}))})}),cK={match:`any`,fields:[{fieldName:`profile_url`}]},lK={allowManagedConnection:!0,mode:`per_page`,credits:{default:.5},info:`1 page = 100 results; billed per 100 results returned (e.g. 100 results = 1 page, 1,000 results = 10 pages). A search returns up to your selected limit in a single request.`},uK=`people-entitysearch-parallel-v1`,dK=class extends Z{billing={billableOperation:uK,cost:lK};searchId=nK;schema=sK;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[rK.name]:this.catalogOutput(rK),[iK.name]:this.catalogOutput(iK),[aK.name]:this.catalogOutput(aK),[oK.name]:this.catalogOutput(oK)}}getConnectionsRequirements(){return[{provider:`parallel`,rateLimitOperation:`parallel_entity_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return cK}},fK=sK,pK={searchId:nK,billableOperation:uK,baseSearch:Q(nK),label:`People search (AI)`,categories:[`people`],paginationType:`page_number`,hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Natural-language people search powered by Parallel Entity Search โ for asks static filters can't express.`,tags:[H.PEOPLE_PROFILES],keywords:[`prospect`,`lead`,`contact`,`find people`,`natural language`],docPath:$(nK),guide:`Best for asks the static filters of the amplemarket or crustdata people searches can't express โ check their schemas first. Returns sparse records (identity basics plus a match rationale) that need further enrichment, where the filter-based datasets return full profiles. When filters get close, prefer a broad filter-based search narrowed by enrichment + row filtering over a natural-language objective.`,cost:lK,provider:`parallel`,defaultPayload:{search_id:nK,connector:null,config:{objective:``,limit:100,output_fields:{name:{enabled:!0,alias:``},job_title:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},parallel_person_entity_match:{enabled:!1,alias:``}}}}},mK=`people:eventguests:luma@1`,hK=_(`name`),gK=_(`email`),_K=_(`luma_id`),vK=_(`registered_at`),yK=_(`luma_event_guest_match`),bK=[{label:`Sample Meetup โ Berlin`,value:`evt-sandbox-1`},{label:`Sample Conference โ SF`,value:`evt-sandbox-2`}],xK={requires:{connection:`luma`},options:async({query:e,secret:t,environment:n})=>{if(n===`sandbox`)return bK;if(!t)throw Error(`A Luma connection is required to list events.`);let r=await fetch(`https://public-api.luma.com/v1/calendar/list-events`,{headers:{accept:`application/json`,"x-luma-api-key":t}});if(!r.ok){let e=await r.text();throw Error(`Failed to list Luma events: ${e}`)}let i=((await r.json()).entries||[]).filter(e=>!!e?.id).map(e=>({label:e.name||e.id,value:e.id}));return e?i.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):i}},SK=r.object({search_id:r.literal(mK),connector:zu(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of guests per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[hK.name]:A({fieldName:hK.name}),[gK.name]:A({fieldName:gK.name}),[_K.name]:A({fieldName:_K.name}),[vK.name]:A({fieldName:vK.name}),[yK.name]:A({fieldName:yK.name})})),filters:r.object({event_id:Fd({path:`config.filters.event_id`,sectionKey:`config.filters`,groupPath:`config.filters.event`,label:`Event`,required:!0,info:`Pick one of your Luma events; guests of this event are returned.`,enabledIf:v(`luma`),optionsDef:xK}),approval_status:Pd({path:`config.filters.approval_status`,sectionKey:`config.filters`,groupPath:`config.filters.event`,label:`Approval status`,description:`Only return guests with this approval status.`,required:!1,options:[{value:`approved`,label:`Approved`},{value:`pending_approval`,label:`Pending approval`},{value:`declined`,label:`Declined`},{value:`waitlist`,label:`Waitlist`},{value:`invited`,label:`Invited`}]})})})}),CK={match:`any`,fields:[{fieldName:`luma_id`}]},wK={allowManagedConnection:!0,mode:`per_page`,credits:{default:1},info:`1 page = up to 100 guests.`},TK=`people-eventguests-luma-v1`,EK=class extends Z{billing={billableOperation:TK,cost:wK};searchId=mK;schema=SK;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[hK.name]:this.catalogOutput(hK),[gK.name]:this.catalogOutput(gK),[_K.name]:this.catalogOutput(_K),[vK.name]:this.catalogOutput(vK),[yK.name]:this.catalogOutput(yK)}}getConnectionsRequirements(){return[{provider:`luma`,rateLimitOperation:`luma_get_guests`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return CK}},DK=SK,OK={searchId:mK,billableOperation:TK,baseSearch:Q(mK),paginationType:`cursor`,label:`List event guests`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Fetch all guests of a Luma event using your own Luma API key.`,tags:[H.PEOPLE_PROFILES,H.EVENTS,H.NEW],keywords:[`attendees`,`rsvp`,`meetup`,`conference`,`registrations`,`participants`],docPath:$(mK),cost:wK,provider:`luma`,defaultPayload:{search_id:mK,connector:{strategy:`first`,connections:[]},config:{limit:100,cursor:``,output_fields:{name:{enabled:!0,alias:``},email:{enabled:!0,alias:``},luma_id:{enabled:!0,alias:``},registered_at:{enabled:!0,alias:``},luma_event_guest_match:{enabled:!0,alias:``}},filters:{event_id:``,approval_status:``}}}},kK=`people:followers:self:x@1`,AK=1e3,jK=_(`name`),MK=_(`x_username`),NK=_(`x_user_id`),PK=_(`x_profile_match`),FK=r.object({search_id:r.literal(kK),connector:zu(),config:r.object({limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of followers per page`}).default(AK),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[jK.name]:A({fieldName:jK.name}),[MK.name]:A({fieldName:MK.name}),[NK.name]:A({fieldName:NK.name}),[PK.name]:A({fieldName:PK.name})}))})}),IK={match:`any`,fields:[{fieldName:`x_user_id`}]},LK={allowManagedConnection:!1,mode:`per_result`,credits:null,userConnectionCredits:{default:.05},info:`Billed per returned follower.`},RK=`people-followers-self-x-v1`,zK=class extends Z{billing={billableOperation:RK,cost:LK};searchId=kK;schema=FK;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[jK.name]:this.catalogOutput(jK),[MK.name]:this.catalogOutput(MK),[NK.name]:this.catalogOutput(NK),[PK.name]:this.catalogOutput(PK)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitOperation:`x_followers_read`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return IK}},BK=FK,VK={searchId:kK,billableOperation:RK,baseSearch:Q(kK),outputFieldMode:`static`,paginationType:`cursor`,label:`My X followers`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List the followers of your connected X (Twitter) account: one row per follower with name, handle, stable user ID, and the full X profile (bio, counts, location, website).`,tags:[H.X,H.NEW],keywords:[`twitter`,`audience`,`fans`,`community`,`network`,`subscribers`],docPath:$(kK),guide:`Lists the CONNECTED account's own followers (the account is resolved from the X connection โ there is no username input; use people:followers:x@1 for other accounts, at 10x the per-follower price). Rows come back newest-follow-first, up to 1000 per page; x_user_id is the dedup key and stays stable when a follower renames โ NEVER disable it in output_fields: without it, dedup and stop_when_no_new_unique_rows silently stop working and every run re-adds the whole list. There is NO time-window filter โ X does not expose WHEN someone followed. The 'new followers every day' automation is built from ordering + dedup instead: schedule search:run@1 with deduplicate on, stop_when_no_new_unique_rows on, and a SMALL page size (config.limit ~25) โ each run pages only until it reaches followers already in the sheet, so quiet days cost one small page and busy days page exactly as deep as needed. Fetched rows bill (0.05 credits each) even when sheet-dedup discards them, including the all-known boundary page. x_profile_match carries bio/counts/location/website (expand with json:extract:multi@1) โ follower_count inside it is each FOLLOWER's own audience size, useful for ranking. X policy prohibits using follower lists for unsolicited bulk outreach.`,cost:LK,provider:`x`,defaultPayload:{search_id:kK,connector:{strategy:`first`,connections:[]},config:{limit:AK,cursor:``,output_fields:{name:{enabled:!0,alias:``},x_username:{enabled:!0,alias:``},x_user_id:{enabled:!0,alias:``},x_profile_match:{enabled:!0,alias:``}}}}},HK=`people:followers:x@1`,UK=1e3,WK=_(`name`),GK=_(`x_username`),KK=_(`x_user_id`),qK=_(`x_profile_match`),JK=r.object({search_id:r.literal(HK),connector:zu(),config:r.object({profile_username:j({path:`config.profile_username`,groupPath:`config.general`,sectionKey:`general`,inputType:`text`,label:`Profile username`,minLength:1,placeholder:`@getpipe0`,description:`The X account whose followers to list (by handle).`}),limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of followers per page`}).default(UK),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[WK.name]:A({fieldName:WK.name}),[GK.name]:A({fieldName:GK.name}),[KK.name]:A({fieldName:KK.name}),[qK.name]:A({fieldName:qK.name})}))})}),YK={match:`any`,fields:[{fieldName:`x_user_id`}]},XK={allowManagedConnection:!1,mode:`per_result`,credits:null,userConnectionCredits:{default:.5},info:`Billed per returned follower โ large accounts add up fast (10,000 followers โ 5,000 credits). Your own followers are 10x cheaper via 'My X followers'.`},ZK=`people-followers-x-v1`,QK=class extends Z{billing={billableOperation:ZK,cost:XK};searchId=HK;schema=JK;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[WK.name]:this.catalogOutput(WK),[GK.name]:this.catalogOutput(GK),[KK.name]:this.catalogOutput(KK),[qK.name]:this.catalogOutput(qK)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitOperation:`x_followers_read`,rateLimitRatio:2,allowManagedConnection:!1}]}getDedupConfig(){return YK}},$K=JK,eq={searchId:HK,billableOperation:ZK,baseSearch:Q(HK),outputFieldMode:`static`,paginationType:`cursor`,label:`X profile followers`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List the followers of any public X (Twitter) account by handle: one row per follower with name, handle, stable user ID, and the full X profile (bio, counts, location, website).`,tags:[H.X,H.NEW],keywords:[`twitter`,`audience`,`competitor`,`community`,`fans`,`network`],docPath:$(HK),guide:`Lists ANY public account's followers by handle โ competitor-audience mapping is the typical use. PRICE CHECK FIRST: 0.5 credits per follower means a 10,000-follower account costs ~5,000 credits to list fully; for the connected account's own followers use people:followers:self:x@1 instead (10x cheaper). Cap spend with the search:run@1 effect's max_number_of_results. Protected accounts return an error. x_user_id is the dedup key โ NEVER disable it in output_fields: without it, dedup and stop_when_no_new_unique_rows silently stop working and every run re-adds (and re-bills) the whole list. There is NO time-window filter โ X does not expose WHEN someone followed. For 'their newest followers each day', rely on ordering + dedup: rows come back newest-follow-first, so schedule search:run@1 with deduplicate on, stop_when_no_new_unique_rows on, and a SMALL page size (config.limit ~25) โ each run pages only until it reaches known followers. Fetched rows bill 0.5 credits each even when sheet-dedup discards them (including the all-known boundary page), so the small page size is what bounds the daily cost. X policy prohibits using follower lists for unsolicited bulk outreach โ use them for research, scoring, and audience analysis.`,cost:XK,provider:`x`,defaultPayload:{search_id:HK,connector:{strategy:`first`,connections:[]},config:{profile_username:``,limit:UK,cursor:``,output_fields:{name:{enabled:!0,alias:``},x_username:{enabled:!0,alias:``},x_user_id:{enabled:!0,alias:``},x_profile_match:{enabled:!0,alias:``}}}}},tq=`people:profiles:amplemarket@2`,nq=[{label:`Last month`,value:`l1m`},{label:`Last 3 months`,value:`l3m`},{label:`Last 6 months`,value:`l6m`},{label:`Last 12 months`,value:`l12m`},{label:`Last 3 years`,value:`l36m`}],rq=_(`name`),iq=_(`company_domain`),aq=_(`profile_url`),oq=_(`job_title`),sq=_(`amplemarket_person_match`),cq=r.object({search_id:r.literal(tq),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,label:`Page size`,sectionKey:`pagination`,description:`Max number of search results per page`}).default(50),page_number:P({path:`config.page_number`,groupPath:`config.pagination`,label:`Page number`,min:1,sectionKey:`pagination`,description:``}).nullish(),output_fields:I(r.object({[rq.name]:A({fieldName:rq.name}),[iq.name]:A({fieldName:iq.name}),[aq.name]:A({fieldName:aq.name}),[oq.name]:A({fieldName:oq.name}),[sq.name]:A({fieldName:sq.name})})),filters:r.object({person_name:j({label:`Full name`,path:`config.filters.person_name`,sectionKey:`config.filters`,inputType:`text`,description:``,groupPath:`config.filters.general`}).default(``),current_locations:N({path:`config.filters.current_locations`,sectionKey:`config.filters`,label:`Location`,optionsDef:g(`location.names`),groupPath:`config.filters.general`,maxItems:20}).default({include:[],exclude:[]}),linkedin_follower_levels:M({path:`config.filters.linkedin_follower_levels`,sectionKey:`config.filters`,label:`LinkedIn followers`,placeholder:`Influencer, moderate, ...`,disableSearch:!0,required:!1,options:h(`person.linkedin_presence.amplemarket`),description:``,groupPath:`config.filters.general`}).default([]),current_job_titles:O({path:`config.filters.current_job_titles`,sectionKey:`config.filters`,label:`Title`,placeholder:X(`title`),description:``,order:1,groupPath:`config.filters.current_employer`,suggestionsDef:g(`person.job_titles`)}),current_seniority_levels:M({path:`config.filters.current_seniority_levels`,sectionKey:`config.filters`,placeholder:X(`seniority`),label:`Seniority`,required:!1,disableSearch:!1,options:h(`person.seniority.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_departments:M({path:`config.filters.current_departments`,sectionKey:`config.filters`,label:`Department`,placeholder:X(`department`),disableSearch:!1,required:!1,options:h(`person.departments.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_job_functions:M({path:`config.filters.current_job_functions`,sectionKey:`config.filters`,label:`Job function`,placeholder:X(`job_function`),disableSearch:!1,required:!1,options:h(`person.job_functions.amplemarket`),description:``,groupPath:`config.filters.current_employer`,maxItems:20}).default([]),current_employer_locations:N({path:`config.filters.current_employer_locations`,sectionKey:`config.filters`,label:`Headquarters`,optionsDef:g(`location.names`),groupPath:`config.filters.current_employer`,placeholder:X(`location`),maxItems:20}).default({include:[],exclude:[]}),current_employer_names:k({path:`config.filters.current_employer_names`,sectionKey:`config.filters`,label:`Company name`,groupPath:`config.filters.current_employer`,description:``,placeholder:X(`company_name`),suggestionsDef:g(`company.names`),maxItems:20}).default({include:[],exclude:[]}),current_employer_domains:k({path:`config.filters.current_employer_domains`,sectionKey:`config.filters`,label:`Company domain`,description:``,maxItems:20,placeholder:X(`company_domain`),groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),current_employer_linkedin_industries:M({path:`config.filters.current_employer_linkedin_industries`,sectionKey:`config.filters`,label:`Industry`,disableSearch:!1,groupPath:`config.filters.current_employer`,description:``,placeholder:X(`industry`),required:!1,options:h(`company.industries.linkedin_full`),maxItems:20}).default([]),current_employer_estimated_revenue:M({path:`config.filters.current_employer_estimated_revenue`,sectionKey:`config.filters`,label:`Estimated revenue`,disableSearch:!1,required:!1,groupPath:`config.filters.current_employer`,description:``,options:h(`company.revenue.amplemarket`)}).default([]),current_employer_headcount_brackets:M({path:`config.filters.current_employer_headcount_brackets`,sectionKey:`config.filters`,label:`Headcount`,disableSearch:!0,required:!1,placeholder:`1-10`,groupPath:`config.filters.current_employer`,description:``,options:h(`company.headcount`)}).default([]),current_employer_customer_types:M({path:`config.filters.current_employer_customer_types`,sectionKey:`config.filters`,label:`Customer types`,placeholder:`B2B, B2C`,disableSearch:!0,required:!1,groupPath:`config.filters.current_employer`,description:``,options:h(`company.customer_type.amplemarket`)}).default([]),current_employer_linkedin_follower_levels:M({path:`config.filters.current_employer_linkedin_follower_levels`,sectionKey:`config.filters`,label:`Company LinkedIn followers`,placeholder:`Massive, large, ...`,disableSearch:!0,required:!1,options:h(`company.linkedin_presence.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_employer_last_funding_round_types:M({path:`config.filters.current_employer_last_funding_round_types`,sectionKey:`config.filters`,label:`Last funding round`,placeholder:`Series A`,disableSearch:!0,required:!1,options:h(`company.last_funding_round.amplemarket`),description:``,groupPath:`config.filters.current_employer`}).default([]),current_employer_last_funding_within:Pd({path:`config.filters.current_employer_last_funding_within`,sectionKey:`config.filters`,label:`Last funding raised within`,description:`Only companies whose latest funding round closed within this time window.`,placeholder:`Last month, last year, ...`,options:nq,required:!1,defaultValue:``,groupPath:`config.filters.current_employer`}).default(``),current_employer_founded_year:Ed({path:`config.filters.current_employer_founded_year`,sectionKey:`config.filters`,label:`Founded year`,groupPath:`config.filters.current_employer`,min:0,max:2040,description:``}).default({min:null,max:null}),current_employer_investors:O({path:`config.filters.current_employer_investors`,sectionKey:`config.filters`,label:`Employer investors`,groupPath:`config.filters.current_employer`,placeholder:X(`investor`),description:``,maxItems:20}),current_employer_open_position_titles:O({path:`config.filters.current_employer_open_position_titles`,sectionKey:`config.filters`,label:`Open positions`,groupPath:`config.filters.current_employer`,description:``,placeholder:X(`title`),suggestionsDef:g(`person.job_titles`)}),school_names:Id({path:`config.filters.school_names`,sectionKey:`config.filters`,label:`School names`,disableSearch:!1,description:``,placeholder:X(`school`),required:!1,groupPath:`config.filters.education`,optionsDef:g(`school.names`),maxItems:20}).default([])}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),lq={match:`any`,fields:[{fieldName:`profile_url`}]},uq={allowManagedConnection:!0,mode:`per_page`,credits:{default:3},info:`1 page = 100 records; 200 results = 2 pages`},dq=`people-profiles-amplemarket-v2`,fq=class extends Z{billing={billableOperation:dq,cost:uq};searchId=tq;schema=cq;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[rq.name]:this.catalogOutput(rq),[iq.name]:this.catalogOutput(iq),[aq.name]:this.catalogOutput(aq),[oq.name]:this.catalogOutput(oq),[sq.name]:this.catalogOutput(sq)}}getConnectionsRequirements(){return[{provider:`amplemarket`,rateLimitOperation:`amplemarket_people_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return lq}},pq=cq,mq={searchId:tq,billableOperation:dq,baseSearch:Q(`people:profiles:amplemarket@2`),paginationType:`page_number`,label:`People search`,categories:[`people`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Filter-based people search on Amplemarket's dataset โ precise prospecting filters.`,tags:[H.PEOPLE_PROFILES],keywords:[`prospect`,`lead`,`contact`,`find people`,`filters`],docPath:$(tq),guide:`The most precise of the three prospecting datasets โ prefer it when its filters express the ask exactly. If a needed criterion is missing here, check the crustdata search's wider filter set before falling back to the natural-language parallel search.`,cost:uq,provider:`amplemarket`,defaultPayload:{search_id:tq,connector:null,config:{limit:50,page_number:1,output_fields:{name:{enabled:!0,alias:``},job_title:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},company_domain:{enabled:!0,alias:``},amplemarket_person_match:{enabled:!0,alias:``}},filters:{current_employer_names:{include:[],exclude:[]},current_departments:[],current_employer_locations:{include:[],exclude:[]},person_name:``,current_employer_founded_year:{min:null,max:null},current_employer_estimated_revenue:[],current_employer_headcount_brackets:[],current_employer_customer_types:[],linkedin_follower_levels:[],current_employer_linkedin_follower_levels:[],current_employer_last_funding_round_types:[],current_employer_last_funding_within:``,current_employer_investors:[],current_employer_open_position_titles:[],current_job_functions:[],current_locations:{include:[],exclude:[]},current_employer_linkedin_industries:[],current_employer_domains:{include:[],exclude:[]},current_seniority_levels:[],school_names:[],current_job_titles:[]}}}},hq=`people:profiles:crustdata@3`,gq=_(`name`),_q=_(`profile_url`),vq=_(`person_profile_match`),yq=r.object({search_id:r.literal(hq),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:1e3,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of search results per page`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[gq.name]:A({fieldName:gq.name}),[_q.name]:A({fieldName:_q.name}),[vq.name]:A({fieldName:vq.name})})),filters:r.object({recently_changed_jobs:Md({path:`config.filters.recently_changed_jobs`,sectionKey:`config.filters`,label:`Recently changed jobs`,description:``,defaultValue:null,groupPath:`config.filters.activities`}),certifications:k({path:`config.filters.certifications`,sectionKey:`config.filters`,label:`Certifications`,groupPath:`config.filters.certifications_honors`,placeholder:X(`certification`),description:``,suggestionsDef:g(`person.certifications.crustdata`)}).default({include:[],exclude:[]}),honors:k({path:`config.filters.honors`,sectionKey:`config.filters`,label:`Honors`,groupPath:`config.filters.certifications_honors`,placeholder:X(`honor`),description:``,suggestionsDef:g(`person.honors.crustdata`)}).default({include:[],exclude:[]}),current_employer_domains:k({path:`config.filters.current_employer_domains`,sectionKey:`config.filters`,label:`Company domain`,placeholder:X(`company_domain`),description:``,maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),current_employer_headcount_brackets:M({path:`config.filters.current_employer_headcount_brackets`,sectionKey:`config.filters`,label:`Headcount`,description:``,placeholder:`1-10`,disableSearch:!0,required:!1,options:h(`company.headcount`),groupPath:`config.filters.current_employer`}).default([]),current_employer_industries:N({path:`config.filters.current_employer_industries`,sectionKey:`config.filters`,label:`Industry`,groupPath:`config.filters.current_employer`,placeholder:X(`industry`),description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),current_employer_names:k({path:`config.filters.current_employer_names`,sectionKey:`config.filters`,label:`Company name`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.current_employer`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),current_employment_job_functions:M({path:`config.filters.current_employment_job_functions`,sectionKey:`config.filters`,label:`Function`,groupPath:`config.filters.current_employer`,placeholder:X(`job_function`),description:``,disableSearch:!0,required:!1,options:h(`person.employment_function.crustdata`)}).default([]),current_employment_job_titles:k({path:`config.filters.current_employment_job_titles`,sectionKey:`config.filters`,label:`Title`,description:``,placeholder:X(`title`),order:1,groupPath:`config.filters.current_employer`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),current_employment_seniority_levels:M({path:`config.filters.current_employment_seniority_levels`,sectionKey:`config.filters`,disableSearch:!0,label:`Seniority`,placeholder:X(`seniority`),options:Xe(`person.seniority.crustdata`).options,required:!1,description:``,groupPath:`config.filters.current_employer`}).default([]),current_employment_tenure_brackets:M({path:`config.filters.current_employment_tenure_brackets`,sectionKey:`config.filters`,label:`Years at current company`,placeholder:`1 to 2 years`,disableSearch:!1,required:!1,groupPath:`config.filters.current_employer`,description:``,options:h(`person.year_brackets`)}).default([]),current_school_names:N({path:`config.filters.current_school_names`,sectionKey:`config.filters`,label:`Currently enrolled at`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),degree_names:N({path:`config.filters.degree_names`,sectionKey:`config.filters`,label:`Degree`,placeholder:X(`degree_name`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.degree.crustdata`)}).default({include:[],exclude:[]}),fields_of_study:N({path:`config.filters.fields_of_study`,sectionKey:`config.filters`,label:`Field of study`,placeholder:X(`field_of_study`),description:``,groupPath:`config.filters.education`,optionsDef:g(`person.field_of_study`)}).default({include:[],exclude:[]}),school_names:N({path:`config.filters.school_names`,sectionKey:`config.filters`,label:`School`,description:``,placeholder:X(`school`),groupPath:`config.filters.education`,optionsDef:g(`school.names`)}).default({include:[],exclude:[]}),previous_employer_domains:k({path:`config.filters.previous_employer_domains`,sectionKey:`config.filters`,label:`Previous employer domain`,description:``,placeholder:X(`company_domain`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.domains`,{widgets:e=>({logo_url:{url:Jt(e.value)}})})}).default({include:[],exclude:[]}),previous_employer_headcount_brackets:M({path:`config.filters.previous_employer_headcount_brackets`,sectionKey:`config.filters`,label:`Previous employer headcount`,description:``,placeholder:`1-10`,disableSearch:!0,required:!1,options:h(`company.headcount`),groupPath:`config.filters.experience`}).default([]),previous_employer_industries:N({path:`config.filters.previous_employer_industries`,sectionKey:`config.filters`,label:`Previous employer industry`,placeholder:X(`industry`),groupPath:`config.filters.experience`,description:``,optionsDef:g(`company.industries.linkedin`,{limit:300})}).default({include:[],exclude:[]}),previous_employer_names:k({path:`config.filters.previous_employer_names`,sectionKey:`config.filters`,label:`Previous employer name`,description:``,placeholder:X(`company_name`),maxItems:200,groupPath:`config.filters.experience`,suggestionsDef:g(`company.names`,{widgets:{emoji:{char:`๐ท๏ธ`}}})}).default({include:[],exclude:[]}),previous_employment_job_functions:M({path:`config.filters.previous_employment_job_functions`,sectionKey:`config.filters`,label:`Previous function`,groupPath:`config.filters.experience`,placeholder:X(`job_function`),description:``,disableSearch:!0,required:!1,options:h(`person.employment_function.crustdata`)}).default([]),previous_employment_job_titles:k({path:`config.filters.previous_employment_job_titles`,sectionKey:`config.filters`,label:`Previous title`,description:``,placeholder:X(`title`),groupPath:`config.filters.experience`,suggestionsDef:g(`person.job_titles`)}).default({include:[],exclude:[]}),previous_employment_seniority_levels:M({path:`config.filters.previous_employment_seniority_levels`,sectionKey:`config.filters`,label:`Previous seniority`,placeholder:X(`seniority`),disableSearch:!0,options:Xe(`person.seniority.crustdata`).options,required:!1,description:``,groupPath:`config.filters.experience`}).default([]),previous_employment_tenure_brackets:M({path:`config.filters.previous_employment_tenure_brackets`,sectionKey:`config.filters`,label:`Years at previous company`,placeholder:`1 to 2 years`,disableSearch:!1,required:!1,groupPath:`config.filters.experience`,description:``,options:h(`person.year_brackets`)}).default([]),total_years_of_experience_brackets:M({path:`config.filters.total_years_of_experience_brackets`,sectionKey:`config.filters`,label:`Years of experience`,placeholder:`1 to 2 years`,disableSearch:!0,description:``,required:!1,options:h(`person.year_brackets`),groupPath:`config.filters.experience`}).default([]),languages:Dd({path:`config.filters.languages`,sectionKey:`config.filters`,label:`Spoken language`,placeholder:X(`languages_1`),optionsDef:Xe(`person.languages.crustdata`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),locations:N({path:`config.filters.locations`,sectionKey:`config.filters`,label:`Location`,placeholder:X(`location`),optionsDef:g(`location.names`),groupPath:`config.filters.general`}).default({include:[],exclude:[]}),about_section_keywords:k({path:`config.filters.about_section_keywords`,sectionKey:`config.filters`,label:`Profile about section contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`profile_keywords`)}).default({include:[],exclude:[]}),profile_headline_keywords:k({path:`config.filters.profile_headline_keywords`,sectionKey:`config.filters`,label:`Headline contains keywords`,maxItems:100,groupPath:`config.filters.keywords`,placeholder:X(`headline_keywords`)}).default({include:[],exclude:[]}),skills:N({path:`config.filters.skills`,sectionKey:`config.filters`,label:`Skills`,description:``,placeholder:X(`skills`),groupPath:`config.filters.skills`,optionsDef:g(`person.skills`)}).default({include:[],exclude:[]})}).check(e=>{oV(e.value)&&e.issues.push({code:`custom`,message:`You must set at least one filter.`,input:e.value})})})}),bq={match:`any`,fields:[{fieldName:`profile_url`}]},xq={allowManagedConnection:!0,mode:`per_result`,credits:{default:.11,level1:{credits:.07,weight:10}},info:`Billed per profile returned.`},Sq=`people-profiles-crustdata-v3`,Cq=class extends Z{billing={billableOperation:Sq,cost:xq};searchId=hq;schema=yq;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[gq.name]:this.catalogOutput(gq),[_q.name]:this.catalogOutput(_q),[vq.name]:this.catalogOutput(vq)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_people_db_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return bq}},wq=yq,Tq={searchId:hq,billableOperation:Sq,baseSearch:Q(`people:profiles:crustdata@2`),paginationType:`cursor`,label:`People search`,categories:[`people`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Filter-based people search on Crustdata's dataset โ widest filter surface: employer, growth, and LinkedIn signals.`,tags:[H.PEOPLE_PROFILES],keywords:[`prospect`,`lead`,`contact`,`find people`,`linkedin`],docPath:$(hq),guide:`The general-purpose default among the three prospecting datasets, with the widest filter surface (employer, growth, LinkedIn signals). Rows are people. When a criterion isn't an exact filter match, check whether another search already returns it as its own rows before enriching for it here; only when none does, search broadly and narrow afterwards โ rather than switching to the natural-language parallel search.`,cost:xq,provider:`crustdata`,defaultPayload:{search_id:hq,connector:null,config:{limit:100,cursor:``,output_fields:{name:{enabled:!0,alias:``},profile_url:{enabled:!0,alias:``},person_profile_match:{enabled:!0,alias:``}},filters:{recently_changed_jobs:null,certifications:{include:[],exclude:[]},honors:{include:[],exclude:[]},current_employer_domains:{include:[],exclude:[]},current_employer_headcount_brackets:[],current_employer_industries:{include:[],exclude:[]},current_employer_names:{include:[],exclude:[]},current_employment_job_functions:[],current_employment_job_titles:{include:[],exclude:[]},current_employment_seniority_levels:[],current_employment_tenure_brackets:[],current_school_names:{include:[],exclude:[]},degree_names:{include:[],exclude:[]},fields_of_study:{include:[],exclude:[]},school_names:{include:[],exclude:[]},previous_employer_domains:{include:[],exclude:[]},previous_employer_headcount_brackets:[],previous_employer_industries:{include:[],exclude:[]},previous_employer_names:{include:[],exclude:[]},previous_employment_job_functions:[],previous_employment_job_titles:{include:[],exclude:[]},previous_employment_seniority_levels:[],previous_employment_tenure_brackets:[],total_years_of_experience_brackets:[],languages:{include:[],exclude:[]},locations:{include:[],exclude:[]},about_section_keywords:{include:[],exclude:[]},profile_headline_keywords:{include:[],exclude:[]},skills:{include:[],exclude:[]}}}}},Eq=`posts:content:crustdata@1`,Dq=_(`post_match`),Oq=_(`post_text`),kq=_(`post_id`),Aq=r.object({search_id:r.literal(Eq),connector:Bu(),config:r.object({limit:P({path:`config.limit`,min:1,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of search results per page`}).default(100),output_fields:I(r.object({[kq.name]:A({fieldName:kq.name}),[Dq.name]:A({fieldName:Dq.name}),[Oq.name]:A({fieldName:Oq.name})})),filters:r.object({keywords:O({path:`config.filters.keywords`,sectionKey:`config.filters`,label:`Search keywords`,groupPath:`config.filters.general`,maxItems:6,placeholder:X(`profile_keywords`),description:``}).default([]),keyword_operator:Pd({path:`config.filters.keyword_operator`,sectionKey:`config.filters`,label:`Keyword operator`,groupPath:`config.filters.general`,options:[{value:`OR`,label:`Any keyword (OR)`},{value:`AND`,label:`All keywords (AND)`}],required:!0,defaultValue:`OR`,description:`Post must match any or all keywords.`}).default(`OR`),date_posted:Pd({path:`config.filters.date_posted`,sectionKey:`config.filters`,label:`Date posted`,groupPath:`config.filters.general`,options:Xe(`post.date_posted.crustdata`).options,placeholder:`Past 24h, past week, ...`,required:!1,defaultValue:``,description:`Only return posts published within this recency window.`}).default(``),content_types:M({path:`config.filters.content_types`,sectionKey:`config.filters`,label:`Content type`,groupPath:`config.filters.general`,options:h(`post.content_type.crustdata`),disableSearch:!0,required:!1,placeholder:`Photos, jobs, ...`,description:``}).default([]),author_industries:Id({path:`config.filters.author_industries`,sectionKey:`config.filters`,label:`Author industry`,groupPath:`config.filters.author`,optionsDef:g(`company.industries.linkedin`),disableSearch:!1,required:!1,maxItems:100,placeholder:X(`industry`),description:`Only return posts whose author works in one of these industries.`}).default([]),author_company_profile_url:O({path:`config.filters.author_company_profile_url`,sectionKey:`config.filters`,label:`Author company profile URL`,groupPath:`config.filters.author`,maxItems:50,placeholder:`https://linkedin.com/company/..., ...`,description:`Only return posts whose author currently works at these companies (by LinkedIn profile URL).`}).default([]),author_title:O({path:`config.filters.author_title`,sectionKey:`config.filters`,label:`Author title`,groupPath:`config.filters.author`,maxItems:50,suggestionsDef:g(`person.job_titles`),placeholder:X(`title`),description:`Only return posts whose author holds one of these titles.`}).default([]),author_profile_url:O({path:`config.filters.author_profile_url`,sectionKey:`config.filters`,label:`Author profile URL`,groupPath:`config.filters.author`,maxItems:50,placeholder:`https://linkedin.com/in/..., ...`,description:`Only return posts authored by these people (by LinkedIn profile URL).`}).default([]),authoring_company_profile_url:O({path:`config.filters.authoring_company_profile_url`,sectionKey:`config.filters`,label:`Authoring company profile URL`,groupPath:`config.filters.author`,maxItems:50,placeholder:`https://linkedin.com/company/..., ...`,description:`Only return posts authored by these companies (by LinkedIn profile URL).`}).default([]),companies_mentioned_in_post:O({path:`config.filters.companies_mentioned_in_post`,sectionKey:`config.filters`,label:`Companies mentioned in post`,groupPath:`config.filters.mentions`,maxItems:50,placeholder:`https://linkedin.com/company/..., ...`,description:`Only return posts that mention these companies (by LinkedIn profile URL).`}).default([]),people_mentioned_in_post:O({path:`config.filters.people_mentioned_in_post`,sectionKey:`config.filters`,label:`People mentioned in post`,groupPath:`config.filters.mentions`,maxItems:50,placeholder:`https://linkedin.com/in/..., ...`,description:`Only return posts that mention these people (by LinkedIn profile URL).`}).default([])}).check(e=>{let t=e.value,n=t.keywords.some(e=>e.trim()!==``),r=[t.author_industries,t.author_company_profile_url,t.author_title,t.author_profile_url,t.authoring_company_profile_url,t.companies_mentioned_in_post,t.people_mentioned_in_post].some(e=>e.length>0);!n&&!r&&e.issues.push({code:`custom`,message:`Provide a keyword or at least one filter.`,input:e.value,path:[`keywords`]});let i=t.author_industries.length>0||t.author_company_profile_url.length>0||t.author_title.length>0||t.author_profile_url.length>0;t.authoring_company_profile_url.length>0&&i&&e.issues.push({code:`custom`,message:`Authoring company profile URL can't be combined with author profile URL, company name, title, or industry filters.`,input:e.value,path:[`authoring_company_profile_url`]})})})}),jq={match:`any`,fields:[{fieldName:`post_id`}]},Mq={allowManagedConnection:!0,mode:`per_result`,credits:{default:2}},Nq=`posts-content-crustdata-v1`,Pq=class extends Z{billing={billableOperation:Nq,cost:Mq};searchId=Eq;schema=Aq;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[kq.name]:this.catalogOutput(kq),[Dq.name]:this.catalogOutput(Dq),[Oq.name]:this.catalogOutput(Oq)}}getConnectionsRequirements(){return[{provider:`crustdata`,rateLimitOperation:`crustdata_social_post_search`,rateLimitRatio:1,allowManagedConnection:!0}]}getDedupConfig(){return jq}},Fq=Aq,Iq={searchId:Eq,billableOperation:Nq,baseSearch:Q(Eq),paginationType:`page_number`,label:`LinkedIn post search`,categories:[`people`],hasManagedConnection:!0,allowsUserConnection:!0,lifecycle:null,description:`Keyword-based LinkedIn post search.`,tags:[H.LINKEDIN],keywords:[`content`,`social`,`engagement`,`keyword`,`activity`],docPath:$(Eq),cost:Mq,provider:`crustdata`,defaultPayload:{search_id:Eq,connector:null,config:{limit:100,output_fields:{post_id:{enabled:!0,alias:``},post_text:{enabled:!0,alias:``},post_match:{enabled:!0,alias:``}},filters:{keywords:[],keyword_operator:`OR`,date_posted:``,content_types:[],author_industries:[],author_company_profile_url:[],author_title:[],author_profile_url:[],authoring_company_profile_url:[],companies_mentioned_in_post:[],people_mentioned_in_post:[]}}}},Lq=`posts:x@1`,Rq=_(`x_post_id`),zq=_(`post_text`),Bq=_(`x_username`),Vq=_(`x_post_match`),Hq=[{value:``,label:`Any time (last 7 days)`},{value:`l1h`,label:`Last hour`},{value:`l1d`,label:`Last 24 hours`},{value:`l7d`,label:`Last 7 days`}],Uq=r.object({search_id:r.literal(Lq),connector:zu(),config:r.object({limit:P({path:`config.limit`,min:10,max:100,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page size`,description:`Max number of posts per page (X allows 10โ100).`}).default(100),cursor:j({path:`config.cursor`,groupPath:`config.pagination`,inputType:`text`,label:`Cursor`,sectionKey:`pagination`,description:`Pagination cursor`}).nullable(),output_fields:I(r.object({[Rq.name]:A({fieldName:Rq.name}),[zq.name]:A({fieldName:zq.name}),[Bq.name]:A({fieldName:Bq.name}),[Vq.name]:A({fieldName:Vq.name})})),filters:r.object({keywords:O({path:`config.filters.keywords`,sectionKey:`config.filters`,label:`Search keywords`,groupPath:`config.filters.general`,maxItems:6,placeholder:`b2b, data enrichment, ...`,info:`Case-insensitive. Multi-word keywords match as exact phrases. Domain-style keywords (clay.com) also match posts that LINK to the domain โ X converts typed domains into links, so text alone would miss most mentions.`,description:`All filters combine into one X query capped at 512 characters โ keep keyword, author, mention, and link lists tight or the run fails at that cap.`}).default([]),keyword_operator:Pd({path:`config.filters.keyword_operator`,sectionKey:`config.filters`,label:`Keyword operator`,groupPath:`config.filters.general`,options:[{value:`OR`,label:`Any keyword (OR)`},{value:`AND`,label:`All keywords (AND)`}],required:!0,defaultValue:`OR`,description:`Post must match any or all keywords.`}).default(`OR`),posted_within:Pd({path:`config.filters.posted_within`,sectionKey:`config.filters`,label:`Posted within`,groupPath:`config.filters.general`,options:Hq,placeholder:`Last 24 hours, ...`,required:!1,defaultValue:``,description:`Only return posts published within this recency window. X's recent search only reaches back 7 days.`}).default(``),links_to:O({path:`config.filters.links_to`,sectionKey:`config.filters`,label:`Posts linking to`,groupPath:`config.filters.general`,maxItems:10,placeholder:`clay.com, acme.com/pricing, ...`,description:`Only return posts containing a link to one of these domains or URLs.`}).default([]),language:Pd({path:`config.filters.language`,sectionKey:`config.filters`,label:`Language`,groupPath:`config.filters.general`,options:Xe(`post.languages.x`).options,placeholder:`English, German, ...`,required:!1,defaultValue:``,description:`Only return posts X classified as this language.`}).default(``),location_countries:M({path:`config.filters.location_countries`,sectionKey:`config.filters`,label:`Country`,groupPath:`config.filters.general`,disableSearch:!1,options:h(`post.countries.x`),required:!1,description:``}).default([]),include_reposts:jd({path:`config.filters.include_reposts`,sectionKey:`config.filters`,label:`Include reposts`,groupPath:`config.filters.general`,description:`Also return reposts (retweets) of matching posts.`,defaultValue:!1}),include_replies:jd({path:`config.filters.include_replies`,sectionKey:`config.filters`,label:`Include replies`,groupPath:`config.filters.general`,description:`Also return replies that match.`,defaultValue:!0}),min_like_count:P({path:`config.filters.min_like_count`,sectionKey:`config.filters`,label:`Minimum likes`,groupPath:`config.filters.engagement`,min:1,description:`Only return posts with at least this many likes.`}).nullable(),min_reply_count:P({path:`config.filters.min_reply_count`,sectionKey:`config.filters`,label:`Minimum replies`,groupPath:`config.filters.engagement`,min:1,description:`Only return posts with at least this many replies.`}).nullable(),min_repost_count:P({path:`config.filters.min_repost_count`,sectionKey:`config.filters`,label:`Minimum reposts`,groupPath:`config.filters.engagement`,min:1,description:`Only return posts with at least this many reposts (retweets).`}).nullable(),author_usernames:O({path:`config.filters.author_usernames`,sectionKey:`config.filters`,label:`Author username`,groupPath:`config.filters.author`,maxItems:10,placeholder:`@pipe0hq, ...`,description:`Only return posts authored by these accounts (by handle).`}).default([]),mentioned_usernames:O({path:`config.filters.mentioned_usernames`,sectionKey:`config.filters`,label:`Accounts mentioned in post`,groupPath:`config.filters.mentions`,maxItems:10,placeholder:`@pipe0hq, ...`,description:`Only return posts that mention these accounts (by handle).`}).default([])}).check(e=>{let t=e.value;t.keywords.some(e=>e.trim()!==``)||t.author_usernames.length>0||t.mentioned_usernames.length>0||t.links_to.length>0||e.issues.push({code:`custom`,message:`Provide a keyword, an author, a mentioned account, or a link filter.`,input:e.value,path:[`keywords`]})})})}),Wq={match:`any`,fields:[{fieldName:`x_post_id`}]},Gq={allowManagedConnection:!1,mode:`per_result`,credits:null,userConnectionCredits:{default:.5},info:`Billed per returned post.`},Kq=`posts-x-v1`,qq=class extends Z{billing={billableOperation:Kq,cost:Gq};searchId=Lq;schema=Uq;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[Rq.name]:this.catalogOutput(Rq),[zq.name]:this.catalogOutput(zq),[Bq.name]:this.catalogOutput(Bq),[Vq.name]:this.catalogOutput(Vq)}}getConnectionsRequirements(){return[{provider:`x`,rateLimitOperation:`x_search_read`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return Wq}},Jq=Uq,Yq={searchId:Lq,billableOperation:Kq,baseSearch:Q(Lq),outputFieldMode:`static`,paginationType:`cursor`,label:`X post search`,categories:[`people`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Keyword and mention search over recent X (Twitter) posts โ last 7 days, with recency, author, and link filters.`,tags:[H.X,H.NEW],keywords:[`twitter`,`tweets`,`social`,`monitor`,`listening`,`mentions`,`keyword`],docPath:$(Lq),guide:`Runs on the user's connected X account and reaches back at most 7 days โ posted_within: l1d in a scheduled sheet is the standard daily social-monitoring setup. Matching is case-insensitive; multi-word keywords match as exact phrases. X converts typed domains into t.co links (the raw text of a post saying 'Clay.com's policy' contains NO 'clay.com'), so domain-style keywords automatically match links too; use links_to when you want ONLY posts that link somewhere, regardless of text. min_like_count/min_reply_count/min_repost_count filter server-side BEFORE billing (each returned post is billed, so an engagement floor cuts cost directly); follower counts have NO search operator โ narrow those downstream on x_post_match.author.follower_count (run_if conditions or formulas). location_countries matches only posts the author explicitly geo-tagged โ a small minority of all posts โ so leave it empty unless you specifically want geo-tagged content. All filters compile into ONE X query capped at 512 characters; overlong keyword/author/mention/link lists fail the run at that cap, so keep lists tight โ field references expand at run time, making the final length hard to predict. x_post_id is the dedup key โ NEVER disable it in output_fields: without it, scheduled runs with dedup re-add the same posts every day. x_post_match carries the qualification signals: linked_urls holds the EXPANDED link targets (post text only shows opaque t.co addresses โ read links from there), and author is a full X profile whose user_id is the rename-stable account key; the author's handle is also emitted as the x_username column, which feeds profile:posts:x@1. X policy allows automated posting of your own content but PROHIBITS automated liking or following โ build engagement steps as human-review flows, never as auto-actions.`,cost:Gq,provider:`x`,defaultPayload:{search_id:Lq,connector:{strategy:`first`,connections:[]},config:{limit:100,cursor:``,output_fields:{x_post_id:{enabled:!0,alias:``},post_text:{enabled:!0,alias:``},x_username:{enabled:!0,alias:``},x_post_match:{enabled:!0,alias:``}},filters:{keywords:[],keyword_operator:`OR`,posted_within:``,links_to:[],language:``,location_countries:[],min_like_count:null,min_reply_count:null,min_repost_count:null,include_reposts:!1,include_replies:!0,author_usernames:[],mentioned_usernames:[]}}}},Xq=`query:attio@1`,Zq=r.object({search_id:r.literal(Xq),connector:zu(),config:r.object({query:Nd({path:`config.query`,groupPath:`config.general`,sectionKey:`general`,label:`SQL query`,description:`A single read-only SELECT statement (PostgreSQL dialect; Attio Enterprise plan only). It is wrapped automatically for pagination, so do not add your own LIMIT/OFFSET for paging.`,rows:8,minLength:1,maxLength:2e4}),limit:vB(),page_number:yB()})}),Qq={allowManagedConnection:!1,mode:null,credits:null,info:`Querying your own Attio workspace is free.`},$q=`query-attio-v1`,eJ=class extends Z{billing={billableOperation:$q,cost:Qq};searchId=Xq;schema=Zq;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_sql`,rateLimitRatio:1,allowManagedConnection:!1}]}async getAgentContext(e){return Wp(e,{objects:`discover`,includeLists:!0})}},tJ=Zq,nJ={searchId:Xq,billableOperation:$q,baseSearch:Q(Xq),outputFieldMode:`dynamic`,paginationType:`page_number`,label:`Query Attio (SQL)`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Run a read-only SQL query against your Attio workspace (Enterprise plan) โ the only way to aggregate (GROUP BY, COUNT) across objects and lists server-side.`,tags:[H.NEW],keywords:[`sql`,`aggregate`,`count`,`group by`,`report`,`crm`],docPath:$(Xq),guide:`Attio Enterprise plan only (other plans get a clear error โ list records with an Attio search and aggregate client-side instead). PostgreSQL dialect, SELECT-only; tables are object/list api_slugs, columns are attribute slugs (call get_provider_context for both). Record-reference arrays must be UNNESTed inside a CTE before joining. Ownership attributes are workspace-defined actor-references โ discover the slug, never assume one. Example: SELECT owner.id, COUNT(*) FROM companies GROUP BY owner.id.`,cost:Qq,provider:`attio`,defaultPayload:{search_id:Xq,connector:{strategy:`first`,connections:[]},config:{query:``,limit:100,page_number:1}}},rJ=`query:salesforce@1`,iJ=r.object({search_id:r.literal(rJ),connector:zu(),config:r.object({soql:Nd({path:`config.soql`,groupPath:`config.general`,sectionKey:`general`,label:`SOQL query`,description:`A single read-only SELECT statement (SOQL, not SQL). Pagination is wrapped automatically โ add your own LIMIT/OFFSET only to cap results.`,rows:8,minLength:1,maxLength:2e4}),limit:P({path:`config.limit`,min:1,max:500,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Limit`,description:`Max number of rows per page`}).default(100),page_number:P({path:`config.page_number`,min:1,groupPath:`config.pagination`,sectionKey:`pagination`,label:`Page`,description:`1-based page index. Salesforce caps OFFSET at 2,000 rows โ narrow with WHERE past that, or use the object searches (their cursors have no depth limit).`}).nullable().default(1)})}),aJ={allowManagedConnection:!1,mode:null,credits:null,info:`Salesforce searches are free โ you bring your own Salesforce connection.`},oJ=`query-salesforce-v1`,sJ=class extends Z{billing={billableOperation:oJ,cost:aJ};searchId=rJ;schema=iJ;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{}}getConnectionsRequirements(){return[{provider:`salesforce`,rateLimitOperation:`salesforce_api`,rateLimitRatio:1,allowManagedConnection:!1}]}async getAgentContext(e){return mp(e,{objects:[`Contact`,`Lead`,`Account`,`Opportunity`],includeStages:!0})}},cJ=iJ,lJ={searchId:rJ,billableOperation:oJ,baseSearch:Q(rJ),outputFieldMode:`dynamic`,paginationType:`page_number`,label:`Query Salesforce (SOQL)`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`Run a read-only SOQL query against your Salesforce org โ including native aggregates (GROUP BY / HAVING / COUNT), e.g. every owner with more than 10 accounts.`,guide:"SOQL SELECT only (no SOSL, no DML). Get object/field API names from get_provider_context and use them verbatim. Aggregates (GROUP BY/HAVING/COUNT) are supported but capped to ONE page โ Salesforce can't paginate aggregate results. Use IsClosed = false for open opportunities (never assume stage names); date literals like LAST_N_DAYS:30 work; in multi-currency orgs prefix amount literals (Amount > USD5000). For org-wide activity reports, query Task/Event directly (e.g. `SELECT Subject, ActivityDate, Who.Name FROM Task WHERE TaskSubtype = 'Call' AND ActivityDate = LAST_WEEK`); for a single record's timeline use activities:find:salesforce instead. OFFSET is capped at 2,000 rows โ past that, narrow with WHERE or use the object searches.",tags:[H.FIELDS,H.NEW],keywords:[`soql`,`sql`,`crm`,`sfdc`,`aggregate`,`group by`,`report`],docPath:$(rJ),cost:aJ,provider:`salesforce`,defaultPayload:{search_id:rJ,connector:{strategy:`first`,connections:[]},config:{soql:``,limit:100,page_number:1}}},uJ=`records:attio@1`,dJ=_(`attio_record_id`),fJ=_(`attio_record_match`),pJ=r.object({search_id:r.literal(uJ),connector:zu(),config:r.object({object:Fd({path:`config.object`,groupPath:`config.general`,sectionKey:`general`,label:`Object`,required:!0,info:`Any object in this workspace โ custom objects included.`,enabledIf:v(`attio`),optionsDef:Pp}),custom_properties:bB(`name`,Hp({target:`objects`,fromField:`object`})),filters:xB(`name`),saved_view:SB(Rp({target:`objects`,fromField:`object`})),created_within:CB(),limit:vB(),page_number:yB(),output_fields:I(r.object({[dJ.name]:A({fieldName:dJ.name}),[fJ.name]:A({fieldName:fJ.name})}))}).check(e=>wB(e,[`created_within`]))}),mJ={allowManagedConnection:!1,mode:null,credits:null,info:`Searching your own Attio workspace is free.`},hJ=`records-attio-v1`,gJ=class extends Z{billing={billableOperation:hJ,cost:mJ};searchId=uJ;schema=pJ;payload;constructor(e){super(),this.payload=this.validatePayload(e)}getRawOutputFields(){return{[dJ.name]:this.catalogOutput(dJ),[fJ.name]:this.catalogOutput(fJ)}}getConnectionsRequirements(){return[{provider:`attio`,rateLimitOperation:`attio_query`,rateLimitRatio:1,allowManagedConnection:!1}]}getDedupConfig(){return{match:`any`,fields:[{fieldName:`attio_record_id`}]}}async getAgentContext(e){let t=this.payload.config.object,n=Array.isArray(t)?t[0]??``:t;return Wp(e,{objects:n?[n]:`discover`,...n?{includeViewsFor:[n]}:{}})}},_J=pJ,vJ={searchId:uJ,billableOperation:hJ,baseSearch:Q(uJ),outputFieldMode:`static`,paginationType:`page_number`,label:`Attio records`,categories:[`data`],hasManagedConnection:!1,allowsUserConnection:!0,lifecycle:null,description:`List records of ANY Attio object โ custom objects included. Each row carries the record id plus a JSON record with a compact attribute set and any custom attributes you pick.`,tags:[H.NEW],keywords:[`crm`,`list`,`import`,`custom object`,`generic`,`workspace`],docPath:$(uJ),guide:"The generic floor for custom objects and users/workspaces โ for people/companies/deals prefer the typed Attio searches (typed identity columns). Call get_provider_context first for the selected object's attribute slugs. The record JSON carries a compact default attribute set under `values` (the object's first attributes in UI order) plus your picks under `custom_properties` โ pick what you need or chain record:lookup for everything. A saved view replaces the filter fields entirely. Attio reports no total count โ page until a short page.",cost:mJ,provider:`attio`,defaultPayload:{search_id:uJ,connector:{strategy:`first`,connections:[]},config:{object:``,custom_properties:[],filters:null,saved_view:``,created_within:``,limit:100,page_number:1,output_fields:{attio_record_id:{enabled:!0,alias:``},attio_record_match:{enabled:!0,alias:``}}}}},yJ=`research:agent@1`,bJ=`research-agent-v1`,xJ={...jl(bJ),"research-agent-v1-search-parallel":{allowManagedConnection:!0,provider:`parallel`,credits:{default:.2},mode:`always`,note:`Billed per web search the agent performs.`},"research-agent-v1-extract-parallel":{allowManagedConnection:!0,provider:`parallel`,credits:{default:.1},mode:`always`,note:`Billed per page the agent reads.`},"research-agent-v1-task-parallel":{allowManagedConnection:!0,provider:`parallel`,credits:{default:.5},mode:`always`,note:`Billed per deep-research task the agent delegates.`}},SJ={search:16,extract:4,task:1},CJ=r.object({search_id:r.literal(yJ),connector:Vu(),config:r.object({prompt:Sd({path:`config.prompt`,groupPath:`config.prompt`,sectionKey:`general`,label:`Research brief`,placeholder:`Find every blog post published on the monitored sites in the last 14 days.
|
|
87
87
|
|