@triplef/agent 0.1.15 → 0.1.17

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.
@@ -1,11 +1,23 @@
1
1
  import { z } from 'zod';
2
- export { D as DEFAULT_VARIANT_ID, F as FormatZodShapeOptions, I as IntentResult, a as IntentSchema, T as TemplateName, f as formatZodShape } from '../intent.schema-DnxaUhmz.js';
2
+ export { B as BROWSER_TOOL_NAMES, D as DEFAULT_VARIANT_ID, F as FormatZodShapeOptions, a as IMAGE_TASK_TEMPLATES, b as ImageTaskTemplate, I as IntentResult, c as IntentSchema, M as MEMORY_TOOL_NAMES, P as ProviderConfig, d as TOOL_DESCRIPTIONS, e as TOOL_NAMES, T as TemplateName, f as ToolName, g as VARIANT_NAMES, V as VariantName, h as formatZodShape, i as isImageTaskTemplate } from '../intent.schema-Bp3p7h7P.js';
3
3
 
4
4
  declare const BLOCKED_IMAGE_HOSTS: Set<string>;
5
5
 
6
+ declare const EMBEDDABLE_VIDEO_PROVIDER_LABELS = "YouTube, Vimeo, Dailymotion, Loom, Wistia";
7
+ declare const EMBEDDABLE_VIDEO_PROVIDER_CLAUSE = "Only return URLs from supported embeddable providers: YouTube, Vimeo, Dailymotion, Loom, Wistia, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms.";
8
+
9
+ declare const DEFAULT_MEDIA_COUNT = 6;
10
+ declare const MORE_MEDIA_COUNT = 12;
11
+
6
12
  declare const BLOCKED_URL_HOSTS: Set<string>;
7
13
  declare const NON_PAGE_EXTENSIONS: RegExp;
8
14
 
15
+ declare const EncyclopediaClassifySchema: z.ZodObject<{
16
+ category: z.ZodString;
17
+ topic: z.ZodString;
18
+ }, z.core.$strip>;
19
+ type EncyclopediaClassification = z.infer<typeof EncyclopediaClassifySchema>;
20
+
9
21
  interface EncyclopediaSourceDocument {
10
22
  url?: string;
11
23
  title?: string;
@@ -44,104 +56,6 @@ interface EncyclopediaSelectResult {
44
56
 
45
57
  declare function categorizeTools(toolNames: readonly string[]): Record<string, string[]>;
46
58
 
47
- declare const VARIANT_NAMES: readonly ["grayscale", "denoised", "sharpened", "clahe"];
48
- type VariantName = (typeof VARIANT_NAMES)[number];
49
- declare const TOOL_DESCRIPTIONS: Record<string, string>;
50
- declare const BROWSER_TOOL_NAMES: readonly ["browser_navigate", "browser_navigate_back", "browser_snapshot", "browser_click", "browser_type", "browser_fill_form", "browser_select_option", "browser_press_key", "browser_wait_for", "browser_take_screenshot", "browser_tabs", "browser_console_messages", "browser_network_requests", "browser_verify_element_visible", "browser_verify_text_visible"];
51
- declare const MEMORY_TOOL_NAMES: readonly ["memory-partition-remember", "memory-partition-recall", "memory-partition-delete", "memory-cognition-remember", "memory-cognition-forget"];
52
- declare const TOOL_NAMES: readonly ["webFetch", "brightDataWebSearch", "brightDataImageSearch", "brightDataNewsSearch", "brightDataPlacesSearch", "brightDataShoppingSearch", "brightDataVideoSearch", "brightDataWebpageScrape", "serperWebSearch", "serperImageSearch", "serperNewsSearch", "serperPlacesSearch", "serperShoppingSearch", "serperBusinessReviewsSearch", "serperVideoSearch", "serperWebpageScrape", "youtubeVideoSearch", "eodhdSearch", "eodhdQuote", "eodhdHistory", "eodhdTechnical", "eodhdIntraday", "eodhdNews", "eodhdFundamentals", "requestGrayscale", "requestDenoised", "requestSharpened", "requestClahe", "memory-partition-remember", "memory-partition-recall", "memory-partition-delete", "memory-cognition-remember", "memory-cognition-forget", "browser_navigate", "browser_navigate_back", "browser_snapshot", "browser_click", "browser_type", "browser_fill_form", "browser_select_option", "browser_press_key", "browser_wait_for", "browser_take_screenshot", "browser_tabs", "browser_console_messages", "browser_network_requests", "browser_verify_element_visible", "browser_verify_text_visible"];
53
- type ToolName = (typeof TOOL_NAMES)[number];
54
- type ProviderConfig = {
55
- serper: {
56
- enabled: boolean;
57
- apiKey?: string;
58
- web: {
59
- enabled: boolean;
60
- };
61
- images: {
62
- enabled: boolean;
63
- };
64
- news: {
65
- enabled: boolean;
66
- };
67
- places: {
68
- enabled: boolean;
69
- };
70
- shopping: {
71
- enabled: boolean;
72
- };
73
- reviews: {
74
- enabled: boolean;
75
- };
76
- videos: {
77
- enabled: boolean;
78
- };
79
- scrape: {
80
- enabled: boolean;
81
- };
82
- };
83
- youtube: {
84
- enabled: boolean;
85
- apiKey?: string;
86
- videos: {
87
- enabled: boolean;
88
- };
89
- };
90
- brightData: {
91
- enabled: boolean;
92
- apiKey?: string;
93
- web: {
94
- enabled: boolean;
95
- };
96
- images: {
97
- enabled: boolean;
98
- };
99
- news: {
100
- enabled: boolean;
101
- };
102
- places: {
103
- enabled: boolean;
104
- };
105
- shopping: {
106
- enabled: boolean;
107
- };
108
- videos: {
109
- enabled: boolean;
110
- };
111
- scrape: {
112
- enabled: boolean;
113
- };
114
- };
115
- eodhd: {
116
- enabled: boolean;
117
- apiKey?: string;
118
- search: {
119
- enabled: boolean;
120
- };
121
- quote: {
122
- enabled: boolean;
123
- };
124
- history: {
125
- enabled: boolean;
126
- };
127
- technical: {
128
- enabled: boolean;
129
- };
130
- intraday: {
131
- enabled: boolean;
132
- };
133
- news: {
134
- enabled: boolean;
135
- };
136
- fundamentals: {
137
- enabled: boolean;
138
- };
139
- };
140
- playwright: {
141
- enabled: boolean;
142
- };
143
- };
144
-
145
59
  declare function hasBlockedImageHost(url: string): boolean;
146
60
 
147
61
  declare function isPrivateOrLocalhost(hostname: string): boolean;
@@ -175,6 +89,12 @@ declare function deriveSchemaKeys(schema: z.ZodType): {
175
89
 
176
90
  declare function formatZodIssues(issues: z.ZodIssue[]): string;
177
91
 
92
+ declare const MemoryClusterSummarySchema: z.ZodObject<{
93
+ title: z.ZodString;
94
+ summary: z.ZodString;
95
+ }, z.core.$strip>;
96
+ type MemoryClusterSummary = z.infer<typeof MemoryClusterSummarySchema>;
97
+
178
98
  declare const ConsolidationVerdictSchema: z.ZodObject<{
179
99
  verdict: z.ZodEnum<{
180
100
  merge: "merge";
@@ -185,19 +105,53 @@ declare const ConsolidationVerdictSchema: z.ZodObject<{
185
105
  }, z.core.$strip>;
186
106
  type ConsolidationVerdict = z.infer<typeof ConsolidationVerdictSchema>;
187
107
 
188
- declare const MemoryClusterSummarySchema: z.ZodObject<{
189
- title: z.ZodString;
190
- summary: z.ZodString;
191
- }, z.core.$strip>;
192
- type MemoryClusterSummary = z.infer<typeof MemoryClusterSummarySchema>;
193
-
194
108
  declare const MemoryEnrichmentSchema: z.ZodObject<{
195
109
  tags: z.ZodArray<z.ZodString>;
196
110
  }, z.core.$strip>;
197
111
  type MemoryEnrichment = z.infer<typeof MemoryEnrichmentSchema>;
198
112
 
113
+ declare const FACT_KINDS: readonly ["preference", "decision", "state", "contact", "project", "possession", "relationship", "fact"];
114
+ declare const FACT_STABILITIES: readonly ["durable", "volatile"];
115
+ declare const ExtractedFactSchema: z.ZodObject<{
116
+ text: z.ZodString;
117
+ subject: z.ZodOptional<z.ZodString>;
118
+ category: z.ZodOptional<z.ZodString>;
119
+ kind: z.ZodEnum<{
120
+ preference: "preference";
121
+ decision: "decision";
122
+ state: "state";
123
+ contact: "contact";
124
+ project: "project";
125
+ possession: "possession";
126
+ relationship: "relationship";
127
+ fact: "fact";
128
+ }>;
129
+ stability: z.ZodEnum<{
130
+ durable: "durable";
131
+ volatile: "volatile";
132
+ }>;
133
+ }, z.core.$strip>;
134
+ type ExtractedFact = z.infer<typeof ExtractedFactSchema>;
199
135
  declare const ExtractionSchema: z.ZodObject<{
200
- facts: z.ZodArray<z.ZodString>;
136
+ facts: z.ZodArray<z.ZodObject<{
137
+ text: z.ZodString;
138
+ subject: z.ZodOptional<z.ZodString>;
139
+ category: z.ZodOptional<z.ZodString>;
140
+ kind: z.ZodEnum<{
141
+ preference: "preference";
142
+ decision: "decision";
143
+ state: "state";
144
+ contact: "contact";
145
+ project: "project";
146
+ possession: "possession";
147
+ relationship: "relationship";
148
+ fact: "fact";
149
+ }>;
150
+ stability: z.ZodEnum<{
151
+ durable: "durable";
152
+ volatile: "volatile";
153
+ }>;
154
+ }, z.core.$strip>>;
201
155
  tags: z.ZodArray<z.ZodString>;
202
156
  category: z.ZodOptional<z.ZodString>;
203
157
  }, z.core.$strip>;
@@ -919,4 +873,4 @@ declare const videolistSchema: z.ZodObject<{
919
873
  }, z.core.$strip>>>;
920
874
  }, z.core.$strip>;
921
875
 
922
- export { BLOCKED_IMAGE_HOSTS, BLOCKED_URL_HOSTS, BROWSER_TOOL_NAMES, COGNITION_LIMIT_DEFAULT, COGNITION_LIMIT_MAX, COGNITION_LIMIT_MIN, COGNITION_PURGE_BATCH, CONVICTION_TAGS, CONVICTION_TEXT_LIMIT, type ConsolidationVerdict, ConsolidationVerdictSchema, EPISODE_PROBE_LIMIT_DEFAULT, EPISODE_PROBE_LIMIT_MIN, EPISODE_RECENCY_MIDPOINT_DEFAULT, EPISODE_RECENCY_MIDPOINT_MAX, EPISODE_RECENCY_MIDPOINT_MIN, EPISODE_RECENCY_SCALE_SECONDS_DEFAULT, EPISODE_RECENCY_SCALE_SECONDS_MAX, EPISODE_RECENCY_SCALE_SECONDS_MIN, EPISODE_RECENCY_WEIGHT_DEFAULT, EPISODE_RECENCY_WEIGHT_MAX, EPISODE_RECENCY_WEIGHT_MIN, EPISODE_SCORE_THRESHOLD_DEFAULT, EPISODE_SCORE_THRESHOLD_MAX, EPISODE_SCORE_THRESHOLD_MIN, EPISODE_TAGS, EPISODE_TEXT_LIMIT, type EncyclopediaSearchResult, type EncyclopediaSelectInput, type EncyclopediaSelectResult, type EncyclopediaSelectedChunk, type EncyclopediaSourceDocument, ExtractionSchema, HERO_VIDEO_TITLE_ISSUE, INSIGHTS_MAX_PER_TURN, INSIGHT_TAGS, INSIGHT_TEXT_LIMIT, MEMORY_TOOL_NAMES, type MemoryClusterSummary, MemoryClusterSummarySchema, type MemoryCognitionProfile, type MemoryEnrichment, MemoryEnrichmentSchema, type MemoryExtraction, type MemoryProfileInsight, type MemoryProfileResponse, NON_PAGE_EXTENSIONS, type ProviderConfig, TOOL_DESCRIPTIONS, TOOL_NAMES, type ToolName, VARIANT_NAMES, type VariantName, cardSchema, categorizeTools, clampCognitionLimit, clampEpisodeProbeLimit, clampEpisodeRecencyMidpoint, clampEpisodeRecencyScaleSeconds, clampEpisodeRecencyWeight, clampEpisodeScoreThreshold, compareSchema, createTextItemSchema, deriveSchemaKeys, describeSchema, discardedReferenceSchema, formatZodIssues, galleryItemSchema, hasBlockedImageHost, heroVideoHasTitle, imagelistSchema, internationalCoverageSchema, isAllFieldsNullWipe, isPrivateOrLocalhost, isTrustedImageUrl, isTrustedUrl, markerSchema, memoryProfileResponseSchema, mergeCognitionProfiles, normalizeInsightPath, ocrSchema, parseStoredProfile, productSchema, referenceGalleryItemSchema, referenceLineSchema, relatedStorySchema, safeMediaUrl, safeMediaUrlOrEmpty, safeUrl, safeVideoUrl, safeVideoUrlOrEmpty, shoplistSchema, sourceSchema, stockmarketItemSchema, stockmarketListSchema, summarySchema, videoGalleryItemSchema, videolistSchema };
876
+ export { BLOCKED_IMAGE_HOSTS, BLOCKED_URL_HOSTS, COGNITION_LIMIT_DEFAULT, COGNITION_LIMIT_MAX, COGNITION_LIMIT_MIN, COGNITION_PURGE_BATCH, CONVICTION_TAGS, CONVICTION_TEXT_LIMIT, type ConsolidationVerdict, ConsolidationVerdictSchema, DEFAULT_MEDIA_COUNT, EMBEDDABLE_VIDEO_PROVIDER_CLAUSE, EMBEDDABLE_VIDEO_PROVIDER_LABELS, EPISODE_PROBE_LIMIT_DEFAULT, EPISODE_PROBE_LIMIT_MIN, EPISODE_RECENCY_MIDPOINT_DEFAULT, EPISODE_RECENCY_MIDPOINT_MAX, EPISODE_RECENCY_MIDPOINT_MIN, EPISODE_RECENCY_SCALE_SECONDS_DEFAULT, EPISODE_RECENCY_SCALE_SECONDS_MAX, EPISODE_RECENCY_SCALE_SECONDS_MIN, EPISODE_RECENCY_WEIGHT_DEFAULT, EPISODE_RECENCY_WEIGHT_MAX, EPISODE_RECENCY_WEIGHT_MIN, EPISODE_SCORE_THRESHOLD_DEFAULT, EPISODE_SCORE_THRESHOLD_MAX, EPISODE_SCORE_THRESHOLD_MIN, EPISODE_TAGS, EPISODE_TEXT_LIMIT, type EncyclopediaClassification, EncyclopediaClassifySchema, type EncyclopediaSearchResult, type EncyclopediaSelectInput, type EncyclopediaSelectResult, type EncyclopediaSelectedChunk, type EncyclopediaSourceDocument, type ExtractedFact, ExtractedFactSchema, ExtractionSchema, FACT_KINDS, FACT_STABILITIES, HERO_VIDEO_TITLE_ISSUE, INSIGHTS_MAX_PER_TURN, INSIGHT_TAGS, INSIGHT_TEXT_LIMIT, MORE_MEDIA_COUNT, type MemoryClusterSummary, MemoryClusterSummarySchema, type MemoryCognitionProfile, type MemoryEnrichment, MemoryEnrichmentSchema, type MemoryExtraction, type MemoryProfileInsight, type MemoryProfileResponse, NON_PAGE_EXTENSIONS, cardSchema, categorizeTools, clampCognitionLimit, clampEpisodeProbeLimit, clampEpisodeRecencyMidpoint, clampEpisodeRecencyScaleSeconds, clampEpisodeRecencyWeight, clampEpisodeScoreThreshold, compareSchema, createTextItemSchema, deriveSchemaKeys, describeSchema, discardedReferenceSchema, formatZodIssues, galleryItemSchema, hasBlockedImageHost, heroVideoHasTitle, imagelistSchema, internationalCoverageSchema, isAllFieldsNullWipe, isPrivateOrLocalhost, isTrustedImageUrl, isTrustedUrl, markerSchema, memoryProfileResponseSchema, mergeCognitionProfiles, normalizeInsightPath, ocrSchema, parseStoredProfile, productSchema, referenceGalleryItemSchema, referenceLineSchema, relatedStorySchema, safeMediaUrl, safeMediaUrlOrEmpty, safeUrl, safeVideoUrl, safeVideoUrlOrEmpty, shoplistSchema, sourceSchema, stockmarketItemSchema, stockmarketListSchema, summarySchema, videoGalleryItemSchema, videolistSchema };
@@ -31,6 +31,14 @@ var BLOCKED_IMAGE_HOSTS = /* @__PURE__ */ new Set([
31
31
  "lh6.googleusercontent.com"
32
32
  ]);
33
33
 
34
+ // src/schemas/constants/embeddable-video-providers.constant.ts
35
+ var EMBEDDABLE_VIDEO_PROVIDER_LABELS = "YouTube, Vimeo, Dailymotion, Loom, Wistia";
36
+ var EMBEDDABLE_VIDEO_PROVIDER_CLAUSE = `Only return URLs from supported embeddable providers: ${EMBEDDABLE_VIDEO_PROVIDER_LABELS}, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms.`;
37
+
38
+ // src/schemas/constants/media-counts.constant.ts
39
+ var DEFAULT_MEDIA_COUNT = 6;
40
+ var MORE_MEDIA_COUNT = 12;
41
+
34
42
  // src/schemas/constants/url-trust.constants.ts
35
43
  var BLOCKED_URL_HOSTS = /* @__PURE__ */ new Set([
36
44
  // Google thumbnail / static asset proxies
@@ -60,6 +68,20 @@ var BLOCKED_URL_HOSTS = /* @__PURE__ */ new Set([
60
68
  "lh6.googleusercontent.com"
61
69
  ]);
62
70
  var NON_PAGE_EXTENSIONS = /\.(js|css|json|xml|svg|png|jpg|jpeg|gif|webp|ico|mp4|webm|ogg|mov|mkv|avi|flv|m3u8|mpd|pdf|zip|tar|gz|rar|exe|dmg|pkg|deb|rpm|woff|woff2|ttf|otf|eot)(\?.*)?$/i;
71
+ var EncyclopediaClassifySchema = z.object({
72
+ /**
73
+ * One broad lowercase PLURAL family label for the document (e.g. `games`,
74
+ * `work`, `health`) — the constellation's cluster tier. Never a specific
75
+ * entity, product, company, or title.
76
+ */
77
+ category: z.string(),
78
+ /**
79
+ * The narrow topic the document is about (e.g. `wuthering waves`,
80
+ * `q3 budget`) — the constellation's cluster tier. A short, specific,
81
+ * reusable label, not a sentence and not a URL.
82
+ */
83
+ topic: z.string()
84
+ });
63
85
 
64
86
  // src/schemas/helpers/tools/categorize-tools.helper.ts
65
87
  function categorizeTools(toolNames) {
@@ -92,7 +114,7 @@ var TOOL_DESCRIPTIONS = {
92
114
  brightDataNewsSearch: "Search latest news using Bright Data SERP API. Returns headlines, sources, dates, and snippets. Supports an optional recency window (day/week/month/year).",
93
115
  brightDataPlacesSearch: "Search places and businesses using Bright Data SERP API (Google Maps). Returns addresses, phone numbers, ratings, review counts, and coordinates. Query with a business name or business type plus location.",
94
116
  brightDataShoppingSearch: "Search for products using Bright Data SERP API (Google Shopping). Returns prices, sellers, images, and ratings. Query with the bare product name and model number.",
95
- brightDataVideoSearch: "Search for videos using Bright Data SERP API. Returns titles, links, channel names, duration, and publish dates. Supports an optional recency window (day/week/month/year). Only return URLs from supported embeddable providers: YouTube, Vimeo, Dailymotion, Loom, Wistia, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms.",
117
+ brightDataVideoSearch: `Search for videos using Bright Data SERP API. Returns titles, links, channel names, duration, and publish dates. Supports an optional recency window (day/week/month/year) for fresh results. ${EMBEDDABLE_VIDEO_PROVIDER_CLAUSE}`,
96
118
  brightDataWebpageScrape: "Fetch and render a full webpage using Bright Data Web Unlocker API. Returns clean Markdown text. Use for pages behind anti-bot protection that plain fetch cannot reach.",
97
119
  serperWebSearch: "Search the web using Serper.dev (Google). Returns organic results with titles, snippets, and links. Supports an optional recency window (day/week/month/year) for fresh results.",
98
120
  serperImageSearch: "Search for images using Serper.dev (Google Images). Prefers 2560\xD71440 (1440p) images and enforces a minimum of 1280\xD7720 (720p) via the Google Images tbs size filter and a client-side dimension filter. Supports an optional recency window (day/week/month/year).",
@@ -100,7 +122,7 @@ var TOOL_DESCRIPTIONS = {
100
122
  serperPlacesSearch: "Search places and businesses using Serper.dev (Google Maps). Returns addresses, phone numbers, ratings, review counts, and coordinates. Query with a business name or business type plus location.",
101
123
  serperShoppingSearch: "Search for products using Serper.dev (Google Shopping). Returns prices, sellers, delivery info, images, and per-offer ratings. Query with the bare product name and model number.",
102
124
  serperBusinessReviewsSearch: "Fetch Google Maps reviews for a specific business or place using Serper.dev. Returns reviewer snippets with author names, star ratings, and dates. Use for seller/business reputation, not editorial product reviews.",
103
- serperVideoSearch: "Search for videos using Serper.dev. Returns titles, links, channel names, duration, and publish dates. Supports an optional recency window (day/week/month/year). Only return URLs from supported embeddable providers: YouTube, Vimeo, Dailymotion, Loom, Wistia, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms.",
125
+ serperVideoSearch: `Search for videos using Serper.dev. Returns titles, links, channel names, duration, and publish dates. Supports an optional recency window (day/week/month/year) for fresh results. ${EMBEDDABLE_VIDEO_PROVIDER_CLAUSE}`,
104
126
  serperWebpageScrape: "Fetch and render a full webpage using Serper.dev scrape API. Returns clean rendered text with its title.",
105
127
  youtubeVideoSearch: "Search YouTube using the official YouTube Data API. Returns titles, links, channel names, durations, view counts, upload dates, and direct thumbnails. All results are embeddable YouTube videos.",
106
128
  eodhdSearch: 'Resolve a company, ETF, or index name to an EODHD ticker code (e.g. "Nvidia" \u2192 NVDA.US). Use before fetching quotes, history, technicals, or news for a named entity.',
@@ -428,6 +450,10 @@ var TEMPLATES = [
428
450
  "merge",
429
451
  "text"
430
452
  ];
453
+ var IMAGE_TASK_TEMPLATES = ["describe", "compare", "ocr"];
454
+ function isImageTaskTemplate(template) {
455
+ return IMAGE_TASK_TEMPLATES.includes(template);
456
+ }
431
457
  var ImagePlanSchema = z.object({
432
458
  resize: z.boolean().default(true).describe(
433
459
  "Whether to resize the original images before sending them to the response model. Default true when images are present."
@@ -448,10 +474,10 @@ var IntentSchema = z.object({
448
474
  'Whether search queries should be anchored on the current date so results bias toward recent information. Default true. Set to false ONLY for timeless general-knowledge, historical, or conceptual requests where recency does not matter (e.g. "how does photosynthesis work", "history of the Roman Empire", "explain quantum entanglement", creative writing).'
449
475
  ),
450
476
  imageCount: z.preprocess((val) => val === null ? 0 : val, z.number().int().min(0).max(50).default(0)).describe(
451
- "Number of images to retrieve when an imageSearch tool is selected. Only set when the user explicitly requests a specific number; otherwise omit or set to 0 and the system will default to 6."
477
+ `Number of images to retrieve when an imageSearch tool is selected. Only set when the user explicitly requests a specific number; otherwise omit or set to 0 and the system will default to ${DEFAULT_MEDIA_COUNT}.`
452
478
  ),
453
479
  videoCount: z.preprocess((val) => val === null ? 0 : val, z.number().int().min(0).max(50).default(0)).describe(
454
- "Number of videos to retrieve when a videoSearch tool is selected. Only set when the user explicitly requests a specific number; otherwise omit or set to 0 and the system will default to 6."
480
+ `Number of videos to retrieve when a videoSearch tool is selected. Only set when the user explicitly requests a specific number; otherwise omit or set to 0 and the system will default to ${DEFAULT_MEDIA_COUNT}.`
455
481
  ),
456
482
  reasoning: z.string().describe("Short explanation of why this template, prompt, and these tools were chosen."),
457
483
  contextSummary: z.string().default("").describe(
@@ -468,20 +494,18 @@ var IntentSchema = z.object({
468
494
  images: ImagePlanSchema.optional().describe("Image processing plan. Only present when images are attached.")
469
495
  }).default({}).describe("Execution plan for the response step.")
470
496
  });
497
+ var MemoryClusterSummarySchema = z.object({
498
+ title: z.string().describe('A short noun-phrase label for the cluster (2\u20136 words), e.g. "gaming preferences" or "work projects".'),
499
+ summary: z.string().describe(
500
+ "One or two sentences summarizing what this cluster of memories is about \u2014 the shared theme, the key facts, and how they relate."
501
+ )
502
+ });
471
503
  var ConsolidationVerdictSchema = z.object({
472
504
  verdict: z.enum(["keep", "redundant", "merge"]).describe(
473
505
  "keep = the new fact adds information not covered by the candidates; redundant = fully covered already (same claim, no new detail, same polarity); merge = it refines/corrects/completes a candidate and mergedText carries the fuller statement."
474
506
  ),
475
507
  mergedText: z.string().optional().describe("Required with verdict=merge: one fuller self-contained statement (full restatement, never a diff).")
476
508
  });
477
- var MemoryClusterSummarySchema = z.object({
478
- title: z.string().describe(
479
- 'A short noun-phrase label for the cluster (2\u20136 words), e.g. "gaming preferences" or "work projects".'
480
- ),
481
- summary: z.string().describe(
482
- "One or two sentences summarizing what this cluster of memories is about \u2014 the shared theme, the key facts, and how they relate."
483
- )
484
- });
485
509
  var MemoryEnrichmentSchema = z.object({
486
510
  /**
487
511
  * 2–6 stable, reusable lowercase topic labels for the record — the existing
@@ -489,13 +513,48 @@ var MemoryEnrichmentSchema = z.object({
489
513
  */
490
514
  tags: z.array(z.string())
491
515
  });
516
+ var FACT_KINDS = [
517
+ "preference",
518
+ "decision",
519
+ "state",
520
+ "contact",
521
+ "project",
522
+ "possession",
523
+ "relationship",
524
+ "fact"
525
+ ];
526
+ var FACT_STABILITIES = ["durable", "volatile"];
527
+ var ExtractedFactSchema = z.object({
528
+ /**
529
+ * The self-contained durable statement — third person, subject up front,
530
+ * no "this"/"that" references.
531
+ */
532
+ text: z.string(),
533
+ /**
534
+ * The lowercase entity the fact is about (default `user`; a person,
535
+ * product, or project name). Maintenance adjudication only ever compares
536
+ * facts about the SAME subject.
537
+ */
538
+ subject: z.string().optional(),
539
+ /**
540
+ * One broad lowercase PLURAL family label for THIS fact (e.g. `stocks`,
541
+ * `pets`, `games`) — inherits the turn-side category when omitted. Never
542
+ * a specific entity, product, company, or game title.
543
+ */
544
+ category: z.string().optional(),
545
+ /** What kind of durable thing this is (see FACT_KINDS). */
546
+ kind: z.enum(FACT_KINDS),
547
+ /** Whether a newer statement is expected to replace this one (see FACT_STABILITIES). */
548
+ stability: z.enum(FACT_STABILITIES)
549
+ });
492
550
  var ExtractionSchema = z.object({
493
551
  /**
494
552
  * Durable, self-contained facts worth remembering in a later, unrelated
495
- * conversation (preferences, decisions, contact details, project facts).
496
- * Empty when nothing in the text is worth remembering.
553
+ * conversation (preferences, decisions, contact details, project facts),
554
+ * each carrying its maintenance metadata (subject, category, kind,
555
+ * stability). Empty when nothing in the text is worth remembering.
497
556
  */
498
- facts: z.array(z.string()),
557
+ facts: z.array(ExtractedFactSchema),
499
558
  /**
500
559
  * 2–6 stable, reusable lowercase topic labels describing the text; the open
501
560
  * vocabulary that powers topic-filtered recall. Tags are NARROW and
@@ -507,9 +566,10 @@ var ExtractionSchema = z.object({
507
566
  * One broad lowercase PLURAL family label for the whole turn-side (e.g.
508
567
  * `stocks`, `pets`, `games`) — groups the narrow tags into one topic family
509
568
  * for the constellation's community tier and the relink job's per-category
510
- * passes. Never a specific entity, product, company, or game title: `amd`
511
- * belongs under `stocks`; `stellar blade` belongs under `games`. Optional:
512
- * a turn with nothing durable may omit it.
569
+ * passes, and backstops facts that omit their own `category`. Never a
570
+ * specific entity, product, company, or game title: `amd` belongs under
571
+ * `stocks`; `stellar blade` belongs under `games`. Optional: a turn with
572
+ * nothing durable may omit it.
513
573
  */
514
574
  category: z.string().optional()
515
575
  });
@@ -1093,4 +1153,4 @@ var videolistSchema = z.object({
1093
1153
  internationalCoverage: internationalCoverageSchema.optional()
1094
1154
  });
1095
1155
 
1096
- export { BLOCKED_IMAGE_HOSTS, BLOCKED_URL_HOSTS, BROWSER_TOOL_NAMES, COGNITION_LIMIT_DEFAULT, COGNITION_LIMIT_MAX, COGNITION_LIMIT_MIN, COGNITION_PURGE_BATCH, CONVICTION_TAGS, CONVICTION_TEXT_LIMIT, ConsolidationVerdictSchema, DEFAULT_VARIANT_ID, EPISODE_PROBE_LIMIT_DEFAULT, EPISODE_PROBE_LIMIT_MIN, EPISODE_RECENCY_MIDPOINT_DEFAULT, EPISODE_RECENCY_MIDPOINT_MAX, EPISODE_RECENCY_MIDPOINT_MIN, EPISODE_RECENCY_SCALE_SECONDS_DEFAULT, EPISODE_RECENCY_SCALE_SECONDS_MAX, EPISODE_RECENCY_SCALE_SECONDS_MIN, EPISODE_RECENCY_WEIGHT_DEFAULT, EPISODE_RECENCY_WEIGHT_MAX, EPISODE_RECENCY_WEIGHT_MIN, EPISODE_SCORE_THRESHOLD_DEFAULT, EPISODE_SCORE_THRESHOLD_MAX, EPISODE_SCORE_THRESHOLD_MIN, EPISODE_TAGS, EPISODE_TEXT_LIMIT, ExtractionSchema, HERO_VIDEO_TITLE_ISSUE, INSIGHTS_MAX_PER_TURN, INSIGHT_TAGS, INSIGHT_TEXT_LIMIT, IntentSchema, MEMORY_TOOL_NAMES, MemoryClusterSummarySchema, MemoryEnrichmentSchema, NON_PAGE_EXTENSIONS, TOOL_DESCRIPTIONS, TOOL_NAMES, VARIANT_NAMES, cardSchema, categorizeTools, clampCognitionLimit, clampEpisodeProbeLimit, clampEpisodeRecencyMidpoint, clampEpisodeRecencyScaleSeconds, clampEpisodeRecencyWeight, clampEpisodeScoreThreshold, compareSchema, createTextItemSchema, deriveSchemaKeys, describeSchema, discardedReferenceSchema, formatZodIssues, formatZodShape, galleryItemSchema, hasBlockedImageHost, heroVideoHasTitle, imagelistSchema, internationalCoverageSchema, isAllFieldsNullWipe, isPrivateOrLocalhost, isTrustedImageUrl, isTrustedUrl, markerSchema, memoryProfileResponseSchema, mergeCognitionProfiles, normalizeInsightPath, ocrSchema, parseStoredProfile, productSchema, referenceGalleryItemSchema, referenceLineSchema, relatedStorySchema, safeMediaUrl, safeMediaUrlOrEmpty, safeUrl, safeVideoUrl, safeVideoUrlOrEmpty, shoplistSchema, sourceSchema, stockmarketItemSchema, stockmarketListSchema, summarySchema, videoGalleryItemSchema, videolistSchema };
1156
+ export { BLOCKED_IMAGE_HOSTS, BLOCKED_URL_HOSTS, BROWSER_TOOL_NAMES, COGNITION_LIMIT_DEFAULT, COGNITION_LIMIT_MAX, COGNITION_LIMIT_MIN, COGNITION_PURGE_BATCH, CONVICTION_TAGS, CONVICTION_TEXT_LIMIT, ConsolidationVerdictSchema, DEFAULT_MEDIA_COUNT, DEFAULT_VARIANT_ID, EMBEDDABLE_VIDEO_PROVIDER_CLAUSE, EMBEDDABLE_VIDEO_PROVIDER_LABELS, EPISODE_PROBE_LIMIT_DEFAULT, EPISODE_PROBE_LIMIT_MIN, EPISODE_RECENCY_MIDPOINT_DEFAULT, EPISODE_RECENCY_MIDPOINT_MAX, EPISODE_RECENCY_MIDPOINT_MIN, EPISODE_RECENCY_SCALE_SECONDS_DEFAULT, EPISODE_RECENCY_SCALE_SECONDS_MAX, EPISODE_RECENCY_SCALE_SECONDS_MIN, EPISODE_RECENCY_WEIGHT_DEFAULT, EPISODE_RECENCY_WEIGHT_MAX, EPISODE_RECENCY_WEIGHT_MIN, EPISODE_SCORE_THRESHOLD_DEFAULT, EPISODE_SCORE_THRESHOLD_MAX, EPISODE_SCORE_THRESHOLD_MIN, EPISODE_TAGS, EPISODE_TEXT_LIMIT, EncyclopediaClassifySchema, ExtractedFactSchema, ExtractionSchema, FACT_KINDS, FACT_STABILITIES, HERO_VIDEO_TITLE_ISSUE, IMAGE_TASK_TEMPLATES, INSIGHTS_MAX_PER_TURN, INSIGHT_TAGS, INSIGHT_TEXT_LIMIT, IntentSchema, MEMORY_TOOL_NAMES, MORE_MEDIA_COUNT, MemoryClusterSummarySchema, MemoryEnrichmentSchema, NON_PAGE_EXTENSIONS, TOOL_DESCRIPTIONS, TOOL_NAMES, VARIANT_NAMES, cardSchema, categorizeTools, clampCognitionLimit, clampEpisodeProbeLimit, clampEpisodeRecencyMidpoint, clampEpisodeRecencyScaleSeconds, clampEpisodeRecencyWeight, clampEpisodeScoreThreshold, compareSchema, createTextItemSchema, deriveSchemaKeys, describeSchema, discardedReferenceSchema, formatZodIssues, formatZodShape, galleryItemSchema, hasBlockedImageHost, heroVideoHasTitle, imagelistSchema, internationalCoverageSchema, isAllFieldsNullWipe, isImageTaskTemplate, isPrivateOrLocalhost, isTrustedImageUrl, isTrustedUrl, markerSchema, memoryProfileResponseSchema, mergeCognitionProfiles, normalizeInsightPath, ocrSchema, parseStoredProfile, productSchema, referenceGalleryItemSchema, referenceLineSchema, relatedStorySchema, safeMediaUrl, safeMediaUrlOrEmpty, safeUrl, safeVideoUrl, safeVideoUrlOrEmpty, shoplistSchema, sourceSchema, stockmarketItemSchema, stockmarketListSchema, summarySchema, videoGalleryItemSchema, videolistSchema };
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { Tool } from 'ai';
3
+ import { M as MemoryPoint } from '../memory-point.model-C4wvvjAY.js';
4
+ export { a as MemoryRole } from '../memory-point.model-C4wvvjAY.js';
3
5
 
4
6
  interface ProviderEndpointConfig {
5
7
  enabled: boolean;
@@ -387,27 +389,6 @@ declare const memoryPartitionRecallSchema: z.ZodObject<{
387
389
  }, z.core.$strip>;
388
390
  type MemoryPartitionRecallInput = z.infer<typeof memoryPartitionRecallSchema>;
389
391
 
390
- type MemoryRole = 'user' | 'assistant';
391
- interface MemoryPoint {
392
- id: string;
393
- memoryPartition?: string;
394
- memoryCognition?: string;
395
- role: MemoryRole;
396
- sessionId?: string;
397
- conversationId?: string;
398
- requestId?: string;
399
- text: string;
400
- tags: string[];
401
- path?: string;
402
- createdAt: string;
403
- score?: number;
404
- isConsolidated?: boolean;
405
- isReflected?: boolean;
406
- isFriction?: boolean;
407
- superseded?: boolean;
408
- supersededBy?: string;
409
- }
410
-
411
392
  interface MemoryPartitionRecallDeps {
412
393
  scope: MemoryToolScope;
413
394
  searchByText: (input: {
@@ -724,4 +705,4 @@ interface VideoStats {
724
705
  lang?: string;
725
706
  }
726
707
 
727
- export { BRIGHT_DATA_TIMEOUT_MS, type BrightDataConfig, type BrightDataImageSearchInput, type BrightDataImageSearchResponse, type BrightDataNewsSearchInput, type BrightDataNewsSearchResponse, type BrightDataPlacesSearchInput, type BrightDataPlacesSearchResponse, type BrightDataShoppingSearchInput, type BrightDataShoppingSearchResponse, type BrightDataVideoSearchInput, type BrightDataVideoSearchResponse, type BrightDataWebSearchInput, type BrightDataWebSearchResponse, type BrightDataWebpageScrapeInput, type BrightDataWebpageScrapeResponse, type EodhdConfig, type EodhdNewsConfig, type FilterVariant, HEADERS, MIN_IMAGE_HEIGHT, MIN_IMAGE_WIDTH, type MarketDailyBar, type MemoryCognitionForgetInput, type MemoryCognitionRememberInput, type MemoryPartitionDeleteInput, type MemoryPartitionRecallInput, type MemoryPartitionRememberInput, type MemoryPoint, type MemoryRole, type MemoryToolScope, type ProviderEndpointConfig, RECENCY_DESCRIPTION, type ResolvableOffer, SEARCH_RETRIES, SEARCH_TIMEOUT_MS, SOURCE, STANDALONE_QUERY_DESCRIPTION, STANDALONE_QUERY_TOOL_CLAUSE, type SearchRecency, type SerperBusinessReviewsSearchInput, type SerperBusinessReviewsSearchResponse, type SerperConfig, type SerperImageSearchInput, type SerperImageSearchResponse, type SerperNewsSearchInput, type SerperNewsSearchResponse, type SerperPlacesSearchInput, type SerperPlacesSearchResponse, type SerperShoppingSearchInput, type SerperShoppingSearchResponse, type SerperVideoSearchInput, type SerperVideoSearchResponse, type SerperWebSearchInput, type SerperWebSearchResponse, type SerperWebpageScrapeInput, type SerperWebpageScrapeResponse, type SourcesConfig, type ToolConfigSnapshot, type ToolDependencies, type ToolLogger, type ToolSummaryFn, type ToolWithSummary, type Variant, type VideoStats, type WebFetchInput, type YoutubeConfig, type YoutubeSearchResponse, type YoutubeVideoSearchInput, type YoutubeVideosResponse, applyLocaleParams, applyRecencyParam, brightDataImageSearchSchema, brightDataNewsSearchSchema, brightDataPlacesSearchSchema, brightDataShoppingSearchSchema, brightDataVideoSearchSchema, brightDataWebSearchSchema, brightDataWebpageScrapeSchema, buildGoogleUrl, buildYoutubeThumbnailUrl, createBrightDataImageSearch, createBrightDataNewsSearch, createBrightDataPlacesSearch, createBrightDataShoppingSearch, createBrightDataVideoSearch, createBrightDataWebSearch, createBrightDataWebpageScrape, createMemoryCognitionForgetTool, createMemoryCognitionRememberTool, createMemoryPartitionDeleteTool, createMemoryPartitionRecallTool, createMemoryPartitionRememberTool, createSerperBusinessReviewsSearch, createSerperImageSearch, createSerperNewsSearch, createSerperPlacesSearch, createSerperShoppingSearch, createSerperVideoSearch, createSerperWebSearch, createSerperWebpageScrape, createVariantRequestTool, createWebFetchTool, createYoutubeVideoSearch, defaultSummarize, engineEnabled, fetchWithTimeout, isGoogleHostUrl, localizedQuerySuffix, meetsMinimumImageDimensions, memoryCognitionForgetSchema, memoryCognitionRememberSchema, memoryPartitionDeleteSchema, memoryPartitionRecallSchema, memoryPartitionRememberSchema, pickMerchantResult, requestBrightData, resolveSerperShopOfferLinks, serperBusinessReviewsSearchSchema, serperImageSearchSchema, serperNewsSearchSchema, serperPlacesSearchSchema, serperShoppingSearchSchema, serperVideoSearchSchema, serperWebSearchSchema, serperWebpageScrapeSchema, storeHostToken, summarizeContent, summarizeFound, summarizeResults, tbsSizeLabelForPixels, variantRequestSchema, webFetchSchema, withSummary, youtubeVideoSearchSchema };
708
+ export { BRIGHT_DATA_TIMEOUT_MS, type BrightDataConfig, type BrightDataImageSearchInput, type BrightDataImageSearchResponse, type BrightDataNewsSearchInput, type BrightDataNewsSearchResponse, type BrightDataPlacesSearchInput, type BrightDataPlacesSearchResponse, type BrightDataShoppingSearchInput, type BrightDataShoppingSearchResponse, type BrightDataVideoSearchInput, type BrightDataVideoSearchResponse, type BrightDataWebSearchInput, type BrightDataWebSearchResponse, type BrightDataWebpageScrapeInput, type BrightDataWebpageScrapeResponse, type EodhdConfig, type EodhdNewsConfig, type FilterVariant, HEADERS, MIN_IMAGE_HEIGHT, MIN_IMAGE_WIDTH, type MarketDailyBar, type MemoryCognitionForgetInput, type MemoryCognitionRememberInput, type MemoryPartitionDeleteInput, type MemoryPartitionRecallInput, type MemoryPartitionRememberInput, MemoryPoint, type MemoryToolScope, type ProviderEndpointConfig, RECENCY_DESCRIPTION, type ResolvableOffer, SEARCH_RETRIES, SEARCH_TIMEOUT_MS, SOURCE, STANDALONE_QUERY_DESCRIPTION, STANDALONE_QUERY_TOOL_CLAUSE, type SearchRecency, type SerperBusinessReviewsSearchInput, type SerperBusinessReviewsSearchResponse, type SerperConfig, type SerperImageSearchInput, type SerperImageSearchResponse, type SerperNewsSearchInput, type SerperNewsSearchResponse, type SerperPlacesSearchInput, type SerperPlacesSearchResponse, type SerperShoppingSearchInput, type SerperShoppingSearchResponse, type SerperVideoSearchInput, type SerperVideoSearchResponse, type SerperWebSearchInput, type SerperWebSearchResponse, type SerperWebpageScrapeInput, type SerperWebpageScrapeResponse, type SourcesConfig, type ToolConfigSnapshot, type ToolDependencies, type ToolLogger, type ToolSummaryFn, type ToolWithSummary, type Variant, type VideoStats, type WebFetchInput, type YoutubeConfig, type YoutubeSearchResponse, type YoutubeVideoSearchInput, type YoutubeVideosResponse, applyLocaleParams, applyRecencyParam, brightDataImageSearchSchema, brightDataNewsSearchSchema, brightDataPlacesSearchSchema, brightDataShoppingSearchSchema, brightDataVideoSearchSchema, brightDataWebSearchSchema, brightDataWebpageScrapeSchema, buildGoogleUrl, buildYoutubeThumbnailUrl, createBrightDataImageSearch, createBrightDataNewsSearch, createBrightDataPlacesSearch, createBrightDataShoppingSearch, createBrightDataVideoSearch, createBrightDataWebSearch, createBrightDataWebpageScrape, createMemoryCognitionForgetTool, createMemoryCognitionRememberTool, createMemoryPartitionDeleteTool, createMemoryPartitionRecallTool, createMemoryPartitionRememberTool, createSerperBusinessReviewsSearch, createSerperImageSearch, createSerperNewsSearch, createSerperPlacesSearch, createSerperShoppingSearch, createSerperVideoSearch, createSerperWebSearch, createSerperWebpageScrape, createVariantRequestTool, createWebFetchTool, createYoutubeVideoSearch, defaultSummarize, engineEnabled, fetchWithTimeout, isGoogleHostUrl, localizedQuerySuffix, meetsMinimumImageDimensions, memoryCognitionForgetSchema, memoryCognitionRememberSchema, memoryPartitionDeleteSchema, memoryPartitionRecallSchema, memoryPartitionRememberSchema, pickMerchantResult, requestBrightData, resolveSerperShopOfferLinks, serperBusinessReviewsSearchSchema, serperImageSearchSchema, serperNewsSearchSchema, serperPlacesSearchSchema, serperShoppingSearchSchema, serperVideoSearchSchema, serperWebSearchSchema, serperWebpageScrapeSchema, storeHostToken, summarizeContent, summarizeFound, summarizeResults, tbsSizeLabelForPixels, variantRequestSchema, webFetchSchema, withSummary, youtubeVideoSearchSchema };
@@ -520,6 +520,10 @@ var brightDataVideoSearchSchema = z.object({
520
520
  lang: z.string().optional().describe("Two-letter ISO language code for result preference (e.g. en, de, ja)")
521
521
  });
522
522
 
523
+ // src/schemas/constants/embeddable-video-providers.constant.ts
524
+ var EMBEDDABLE_VIDEO_PROVIDER_LABELS = "YouTube, Vimeo, Dailymotion, Loom, Wistia";
525
+ var EMBEDDABLE_VIDEO_PROVIDER_CLAUSE = `Only return URLs from supported embeddable providers: ${EMBEDDABLE_VIDEO_PROVIDER_LABELS}, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms.`;
526
+
523
527
  // src/tools/helpers/localized-query-suffix.helper.ts
524
528
  function localizedQuerySuffix(lang) {
525
529
  if (!lang) return "";
@@ -585,7 +589,7 @@ function mapBrightDataVideoResult(r) {
585
589
  // src/tools/bright-data/video-search.tool.ts
586
590
  function createBrightDataVideoSearch(deps) {
587
591
  return tool({
588
- description: 'Search for videos using Bright Data SERP API (Google Videos). Returns titles, links, snippets, and duration. Only return URLs from supported embeddable providers: YouTube, Vimeo, Dailymotion, Loom, Wistia, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms. Pass recency ("day"|"week"|"month"|"year") to restrict to recently uploaded videos. ' + STANDALONE_QUERY_TOOL_CLAUSE,
592
+ description: `Search for videos using Bright Data SERP API (Google Videos). Returns titles, links, snippets, and duration. ${EMBEDDABLE_VIDEO_PROVIDER_CLAUSE} Pass recency ("day"|"week"|"month"|"year") to restrict to recently uploaded videos. ` + STANDALONE_QUERY_TOOL_CLAUSE,
589
593
  inputSchema: brightDataVideoSearchSchema,
590
594
  execute: async ({ query, count: reqCount, recency, lang }) => {
591
595
  const cfg = deps.getLiveConfig().brightData;
@@ -1439,7 +1443,7 @@ function mapSerperVideoResult(input) {
1439
1443
  // src/tools/serper/video-search.tool.ts
1440
1444
  function createSerperVideoSearch(deps) {
1441
1445
  return tool({
1442
- description: 'Search for videos using Serper.dev. Returns titles, links, channel names, duration, and publish dates. Only return URLs from supported embeddable providers: YouTube, Vimeo, Dailymotion, Loom, Wistia, or direct video files. Reject Instagram, Facebook, TikTok, Twitch, X/Twitter, and other unreliable platforms. Pass recency ("day"|"week"|"month"|"year") to restrict to recently uploaded videos. ' + STANDALONE_QUERY_TOOL_CLAUSE,
1446
+ description: `Search for videos using Serper.dev. Returns titles, links, channel names, duration, and publish dates. ${EMBEDDABLE_VIDEO_PROVIDER_CLAUSE} Pass recency ("day"|"week"|"month"|"year") to restrict to recently uploaded videos. ` + STANDALONE_QUERY_TOOL_CLAUSE,
1443
1447
  inputSchema: serperVideoSearchSchema,
1444
1448
  execute: async ({ query, count: reqCount, recency, lang }) => {
1445
1449
  const cfg = deps.getLiveConfig().serper;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@triplef/agent",
3
3
  "description": "tripleF (3F) agent domain — structured-output schemas, prompt builders, and model tools shared across the apps.",
4
- "version": "0.1.15",
4
+ "version": "0.1.17",
5
5
  "packageManager": "pnpm@11.25.0",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -60,7 +60,7 @@
60
60
  "turndown": "^7.2.4"
61
61
  },
62
62
  "peerDependencies": {
63
- "ai": "^7.0.89",
63
+ "ai": "^7.0.90",
64
64
  "zod": "^4.5.4"
65
65
  },
66
66
  "peerDependenciesMeta": {