@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.
- package/dist/{intent.schema-DnxaUhmz.d.ts → intent.schema-Bp3p7h7P.d.ts} +103 -2
- package/dist/memory-point.model-C4wvvjAY.d.ts +22 -0
- package/dist/prompts/index.d.ts +91 -22
- package/dist/prompts/index.mjs +1279 -675
- package/dist/schemas/index.d.ts +61 -107
- package/dist/schemas/index.mjs +79 -19
- package/dist/tools/index.d.ts +3 -22
- package/dist/tools/index.mjs +6 -2
- package/package.json +2 -2
package/dist/schemas/index.d.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export { D as DEFAULT_VARIANT_ID, F as FormatZodShapeOptions, I as IntentResult,
|
|
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.
|
|
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,
|
|
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 };
|
package/dist/schemas/index.mjs
CHANGED
|
@@ -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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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(
|
|
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
|
|
511
|
-
*
|
|
512
|
-
*
|
|
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 };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -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,
|
|
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 };
|
package/dist/tools/index.mjs
CHANGED
|
@@ -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:
|
|
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:
|
|
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.
|
|
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.
|
|
63
|
+
"ai": "^7.0.90",
|
|
64
64
|
"zod": "^4.5.4"
|
|
65
65
|
},
|
|
66
66
|
"peerDependenciesMeta": {
|