{"version":3,"file":"schema.mjs","sources":["../../../../src/tools/search/schema.ts"],"sourcesContent":["export enum DATE_RANGE {\n  PAST_HOUR = 'h',\n  PAST_24_HOURS = 'd',\n  PAST_WEEK = 'w',\n  PAST_MONTH = 'm',\n  PAST_YEAR = 'y',\n}\n\nexport const DEFAULT_QUERY_DESCRIPTION = `\nGUIDELINES:\n- Start broad, then narrow: Begin with key concepts, then refine with specifics\n- Think like sources: Use terminology experts would use in the field\n- Consider perspective: Frame queries from different viewpoints for better results\n- Quality over quantity: A precise 3-4 word query often beats lengthy sentences\n\nTECHNIQUES (combine for power searches):\n- EXACT PHRASES: Use quotes (\"climate change report\")\n- EXCLUDE TERMS: Use minus to remove unwanted results (-wikipedia)\n- SITE-SPECIFIC: Restrict to websites (site:edu research)\n- FILETYPE: Find specific documents (filetype:pdf study)\n- OR OPERATOR: Find alternatives (electric OR hybrid cars)\n- DATE RANGE: Recent information (data after:2020)\n- WILDCARDS: Use * for unknown terms (how to * bread)\n- SPECIFIC QUESTIONS: Use who/what/when/where/why/how\n- DOMAIN TERMS: Include technical terminology for specialized topics\n- CONCISE TERMS: Prioritize keywords over sentences\n`.trim();\n\nexport const DEFAULT_COUNTRY_DESCRIPTION =\n  `Country code to localize search results.\nUse standard 2-letter country codes: \"us\", \"uk\", \"ca\", \"de\", \"fr\", \"jp\", \"br\", etc.\nProvide this when the search should return results specific to a particular country.\nExamples:\n- \"us\" for United States (default)\n- \"de\" for Germany\n- \"in\" for India\n`.trim();\n\nexport const querySchema = {\n  type: 'string',\n  description: DEFAULT_QUERY_DESCRIPTION,\n} as const;\n\nexport const dateSchema = {\n  type: 'string',\n  enum: Object.values(DATE_RANGE),\n  description: 'Date range for search results.',\n} as const;\n\nexport const countrySchema = {\n  type: 'string',\n  description: DEFAULT_COUNTRY_DESCRIPTION,\n} as const;\n\nexport const imagesSchema = {\n  type: 'boolean',\n  description: 'Whether to also run an image search.',\n} as const;\n\nexport const videosSchema = {\n  type: 'boolean',\n  description: 'Whether to also run a video search.',\n} as const;\n\nexport const newsSchema = {\n  type: 'boolean',\n  description: 'Whether to also run a news search.',\n} as const;\n\n/** Combined web search tool schema with all properties */\nexport const WebSearchToolSchema = {\n  type: 'object',\n  properties: {\n    query: querySchema,\n    date: dateSchema,\n    country: countrySchema,\n    images: imagesSchema,\n    videos: videosSchema,\n    news: newsSchema,\n  },\n  required: ['query'],\n} as const;\n\nexport const WebSearchToolName = 'web_search';\n\nexport const WebSearchToolDescription = `Real-time search. Results have required citation anchors.\n\nNote: Use ONCE per reply unless instructed otherwise.\n\nAnchors:\n- \\\\ue202turnXtypeY\n- X = turn idx, type = 'search' | 'news' | 'image' | 'ref', Y = item idx\n\nSpecial Markers:\n- \\\\ue203...\\\\ue204 — highlight start/end of cited text (for Standalone or Group citations)\n- \\\\ue200...\\\\ue201 — group block (e.g. \\\\ue200\\\\ue202turn0search1\\\\ue202turn0news2\\\\ue201)\n\n**CITE EVERY NON-OBVIOUS FACT/QUOTE:**\nUse anchor marker(s) immediately after the statement:\n- Standalone: \"Pure functions produce same output. \\\\ue202turn0search0\"\n- Standalone (multiple): \"Today's News \\\\ue202turn0search0\\\\ue202turn0news0\"\n- Highlight: \"\\\\ue203Highlight text.\\\\ue204\\\\ue202turn0news1\"\n- Group: \"Sources. \\\\ue200\\\\ue202turn0search0\\\\ue202turn0news1\\\\ue201\"\n- Group Highlight: \"\\\\ue203Highlight for group.\\\\ue204 \\\\ue200\\\\ue202turn0search0\\\\ue202turn0news1\\\\ue201\"\n- Image: \"See photo \\\\ue202turn0image0.\"\n\n**NEVER use markdown links, [1], or footnotes. CITE ONLY with anchors provided.**`;\n\nexport const WebSearchToolDefinition = {\n  name: WebSearchToolName,\n  description: WebSearchToolDescription,\n  schema: WebSearchToolSchema,\n} as const;\n"],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe;AACf,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,GAAmB;AACnB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe;AACf,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,GAAgB;AAChB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe;AACjB,CAAC,EANW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAQf,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;CAkBxC,CAAC,IAAI;AAEC,MAAM,2BAA2B,GACtC,CAAA;;;;;;;CAOD,CAAC,IAAI;AAEC,MAAM,WAAW,GAAG;AACzB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,WAAW,EAAE,yBAAyB;;AAGjC,MAAM,UAAU,GAAG;AACxB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,WAAW,EAAE,gCAAgC;;AAGxC,MAAM,aAAa,GAAG;AAC3B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,WAAW,EAAE,2BAA2B;;AAGnC,MAAM,YAAY,GAAG;AAC1B,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,WAAW,EAAE,sCAAsC;;AAG9C,MAAM,YAAY,GAAG;AAC1B,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,WAAW,EAAE,qCAAqC;;AAG7C,MAAM,UAAU,GAAG;AACxB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,WAAW,EAAE,oCAAoC;;AAGnD;AACO,MAAM,mBAAmB,GAAG;AACjC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE;AACV,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,IAAI,EAAE,UAAU;AACjB,KAAA;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;;AAGd,MAAM,iBAAiB,GAAG;AAE1B,MAAM,wBAAwB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;AAuBjC,MAAM,uBAAuB,GAAG;AACrC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,MAAM,EAAE,mBAAmB;;;;;"}