openmates 0.21.0-alpha.4 → 0.21.0-alpha.6

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.
@@ -19003,7 +19003,7 @@ var APP_SKILL_METADATA = [
19003
19003
  "app_namespace_py": "code",
19004
19004
  "skill_method_py": "run",
19005
19005
  "description_key": "app_skills.code.run.description",
19006
- "description": "Run code in an isolated E2B sandbox. When running code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_id from a filename. Use target_embed_id only for an existing chat code embed. Ask the user before running unmodified user-supplied code or after the initial run plus two unprompted reruns. The sandbox installs supported dependency manifests, executes the selected file, streams terminal status, and returns safe artif",
19006
+ "description": "Run code in an isolated E2B sandbox or propose an exact command for the currently focused remote Project source. Remote execution requires an explicit one-run approval or an exact currently enabled command preset; never infer approval from Project write mode, chat text, or prior runs. Pass remote commands as argv, never as a composed shell string. When running E2B code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_",
19007
19007
  "schema": {
19008
19008
  "type": "object",
19009
19009
  "properties": {
@@ -19611,6 +19611,11 @@ Note: The 'id' field is auto-generated if not provided.
19611
19611
  "maximum": 50,
19612
19612
  "default": 10
19613
19613
  },
19614
+ "relevance_criteria": {
19615
+ "type": "string",
19616
+ "maxLength": 1e3,
19617
+ "description": "Optional concise natural-language event-selection purpose used for relevance ranking. Include it whenever the user states a material goal such as networking, promoting a product, finding potential users, or future speaking opportunities; omit it for a plain event search and never invent preferences. When present, the skill ranks a bounded pool of up to 40 candidates (or the larger requested count) and still returns only count events.\n"
19618
+ },
19614
19619
  "provider": {
19615
19620
  "type": "string",
19616
19621
  "description": "Provider for this request. Overrides the top-level provider when set.",
@@ -19894,7 +19899,7 @@ Note: The 'id' field is auto-generated if not provided.
19894
19899
  "app_namespace_py": "fitness",
19895
19900
  "skill_method_py": "search_locations",
19896
19901
  "description_key": "fitness.search_locations.description",
19897
- "description": "Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches.",
19902
+ "description": "Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches. When the user states a material purpose or preference that should change venue ordering, include a concise, faithful relevance_criteria value. Keep city, radius, plan, and category constraints structured. A plain venue search may omit it; never",
19898
19903
  "schema": {
19899
19904
  "type": "object",
19900
19905
  "properties": {
@@ -19928,7 +19933,15 @@ Note: The 'id' field is auto-generated if not provided.
19928
19933
  "type": "string"
19929
19934
  },
19930
19935
  "limit": {
19931
- "type": "number"
19936
+ "type": "integer",
19937
+ "minimum": 1,
19938
+ "maximum": 50,
19939
+ "default": 10
19940
+ },
19941
+ "relevance_criteria": {
19942
+ "type": "string",
19943
+ "maxLength": 1e3,
19944
+ "description": "Optional natural-language activity goal used only to rank matching fitness locations. Omit for distance-first provider ordering; structured city, radius, plan, and category filters remain authoritative."
19932
19945
  }
19933
19946
  }
19934
19947
  },
@@ -19945,7 +19958,7 @@ Note: The 'id' field is auto-generated if not provided.
19945
19958
  "app_namespace_py": "fitness",
19946
19959
  "skill_method_py": "search_classes",
19947
19960
  "description_key": "fitness.search_classes.description",
19948
- "description": "Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max.",
19961
+ "description": "Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max. When the user states a material purpose or preference that should change class ordering, include a concise, faithful relevance_criteria value. Keep date, location, radius, plan, attendance mode, min",
19949
19962
  "schema": {
19950
19963
  "type": "object",
19951
19964
  "properties": {
@@ -19997,7 +20010,15 @@ Note: The 'id' field is auto-generated if not provided.
19997
20010
  "type": "string"
19998
20011
  },
19999
20012
  "limit": {
20000
- "type": "number"
20013
+ "type": "integer",
20014
+ "minimum": 1,
20015
+ "maximum": 50,
20016
+ "default": 10
20017
+ },
20018
+ "relevance_criteria": {
20019
+ "type": "string",
20020
+ "maxLength": 1e3,
20021
+ "description": "Optional natural-language activity goal used only to rank matching fitness classes. Omit for chronological provider ordering; structured date, location, radius, plan, attendance, spots, category, and venue filters remain authoritative."
20001
20022
  }
20002
20023
  }
20003
20024
  },
@@ -20121,7 +20142,7 @@ Note: The 'id' field is auto-generated if not provided.
20121
20142
  "app_namespace_py": "home",
20122
20143
  "skill_method_py": "search",
20123
20144
  "description_key": "app_skills.home.search.description",
20124
- "description": "Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany.",
20145
+ "description": "Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany. When the user states a material preference not fully captured by the structured price, room, size, property-type, or sort fields, include a concise, faithful relevance_criteria value without waiting for the user to",
20125
20146
  "schema": {
20126
20147
  "type": "object",
20127
20148
  "properties": {
@@ -20189,6 +20210,11 @@ Note: The 'id' field is auto-generated if not provided.
20189
20210
  "minimum": 0,
20190
20211
  "description": "Minimum advertised area in square metres. Unknown area is excluded when set."
20191
20212
  },
20213
+ "relevance_criteria": {
20214
+ "type": "string",
20215
+ "maxLength": 1e3,
20216
+ "description": "Optional concise natural-language housing preference for relevance ranking. Include it when the user states a material preference not fully represented by structured filters; omit it for a plain search. Rank only explicit listing facts and never infer unstated amenities, commute, lease, accessibility, or neighborhood qualities. The internal candidate pool is bounded and only max_results listings are returned.\n"
20217
+ },
20192
20218
  "max_results": {
20193
20219
  "type": "integer",
20194
20220
  "description": "Maximum number of listings to return (1-20, default 10).",
@@ -20642,7 +20668,7 @@ Each object must contain 'prompt' (description of the image).
20642
20668
  "app_namespace_py": "maps",
20643
20669
  "skill_method_py": "search",
20644
20670
  "description_key": "maps.search.description",
20645
- "description": "Search for places, businesses, restaurants, directions, locations.",
20671
+ "description": "Search for places, businesses, restaurants, directions, and locations. When the user's request states a material purpose or preference that should change which matching places rank first, include a concise, faithful relevance_criteria value without waiting for the user to name the field. Keep location, place type, rating, open-now, price, and required amenity constraints in their structured fields. A plain place search may omit relevance_criteria; never invent quietness, ambience, accessibility,",
20646
20672
  "schema": {
20647
20673
  "type": "object",
20648
20674
  "properties": {
@@ -20652,7 +20678,7 @@ Each object must contain 'prompt' (description of the image).
20652
20678
  This parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.
20653
20679
  Example for single search: {"requests": [{"query": "restaurants in Berlin"}]}
20654
20680
  Example for multiple searches: {"requests": [{"query": "restaurants in Berlin"}, {"query": "museums in Berlin"}]}
20655
- Each object must contain 'query' (search query string), and can include optional parameters (pageSize, languageCode, locationBias, includedType, minRating, openNow, includeReviews).
20681
+ Each object must contain 'query' (search query string), and can include optional parameters (pageSize, relevance_criteria, languageCode, locationBias, includedType, minRating, openNow, includeReviews).
20656
20682
  Note: The 'id' field is auto-generated if not provided - you don't need to include it.
20657
20683
  `,
20658
20684
  "items": {
@@ -20669,6 +20695,11 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
20669
20695
  "maximum": 20,
20670
20696
  "default": 10
20671
20697
  },
20698
+ "relevance_criteria": {
20699
+ "type": "string",
20700
+ "maxLength": 1e3,
20701
+ "description": "Optional natural-language goal used only to rank matching place candidates. Omit for ordinary provider ordering; structured place, rating, open-now, price, location, and amenity filters remain authoritative."
20702
+ },
20672
20703
  "languageCode": {
20673
20704
  "type": "string",
20674
20705
  "description": "Language code for results (ISO 639-1, e.g., 'en', 'es', 'fr', 'de'). Defaults to 'en' if not specified.",
@@ -21022,7 +21053,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
21022
21053
  "app_namespace_py": "news",
21023
21054
  "skill_method_py": "search",
21024
21055
  "description_key": "news.search.description",
21025
- "description": "Search for news articles, current events, headlines, announcements.",
21056
+ "description": "Search for news articles, current events, headlines, and announcements. When the user states a material purpose or preference that should change which coverage is most useful, include a concise, faithful relevance_criteria value. Do not wait for the user to name the field, but omit it for a plain news search and never invent preferences.",
21026
21057
  "schema": {
21027
21058
  "type": "object",
21028
21059
  "properties": {
@@ -21032,7 +21063,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
21032
21063
  This parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.
21033
21064
  Example for single search: {"requests": [{"query": "iPhone news"}]}
21034
21065
  Example for multiple searches: {"requests": [{"query": "iPhone news"}, {"query": "MacBook news"}]}
21035
- Each object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch, freshness).
21066
+ Each object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch, freshness).
21036
21067
  Note: The 'id' field is auto-generated if not provided - you don't need to include it.
21037
21068
  `,
21038
21069
  "items": {
@@ -21044,10 +21075,15 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
21044
21075
  },
21045
21076
  "count": {
21046
21077
  "type": "integer",
21047
- "description": "Number of results for this request (max 20)",
21078
+ "description": "Number of final results for this request (default 10, max 20).",
21048
21079
  "minimum": 1,
21049
21080
  "maximum": 20,
21050
- "default": 6
21081
+ "default": 10
21082
+ },
21083
+ "relevance_criteria": {
21084
+ "type": "string",
21085
+ "maxLength": 1e3,
21086
+ "description": "Optional concise natural-language purpose or preference for relevance ranking. Include it when the user states a material goal that should change ordering; omit it for a plain search and never invent preferences. When present, the skill ranks up to 40 candidates and still returns only count results.\n"
21051
21087
  },
21052
21088
  "country": {
21053
21089
  "type": "string",
@@ -21857,7 +21893,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
21857
21893
  "app_namespace_py": "shopping",
21858
21894
  "skill_method_py": "search_products",
21859
21895
  "description_key": "app_skills.shopping.search_products.description",
21860
- "description": "Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected.",
21896
+ "description": "Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected. When the user states a material use case or preference that should change product ordering, include a concise, faithful relevance_criteria value. Keep provider, category, country, department, price, fulfilment, and sort constraints structured. A plain product",
21861
21897
  "schema": {
21862
21898
  "type": "object",
21863
21899
  "properties": {
@@ -21910,8 +21946,15 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
21910
21946
  "max_results": {
21911
21947
  "type": "integer",
21912
21948
  "description": "Maximum number of products to return (1-20, default 10).",
21949
+ "minimum": 1,
21950
+ "maximum": 20,
21913
21951
  "default": 10
21914
21952
  },
21953
+ "relevance_criteria": {
21954
+ "type": "string",
21955
+ "maxLength": 1e3,
21956
+ "description": "Optional natural-language purchase goal used only to rank matching product candidates. Omit for ordinary provider ordering; structured provider, category, price, country, department, fulfilment, and sort fields remain authoritative."
21957
+ },
21915
21958
  "sort": {
21916
21959
  "type": "string",
21917
21960
  "description": "Sort order for results. REWE supports: relevance, price_asc, price_desc, new. Amazon supports: relevance, price_asc, price_desc, review_rank, newest, best_sellers. Stoffe.de supports: relevance, price_asc, price_desc, new.\n",
@@ -22604,7 +22647,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
22604
22647
  "app_namespace_py": "travel",
22605
22648
  "skill_method_py": "search_stays",
22606
22649
  "description_key": "app_skills.travel.search_stays.description",
22607
- "description": "Run this OpenMates app skill.",
22650
+ "description": "Search hotels, hostels, and other stays for explicit dates and party size. When the user states a material stay purpose or preference that should change which valid properties rank first, include a concise, faithful relevance_criteria value. Keep dates, guests, currency, price, hotel class, rating, free cancellation, and sort constraints in their structured fields. A plain stay search may omit relevance_criteria; never invent budget, amenities, neighborhood, quietness, accessibility, workspace,",
22608
22651
  "schema": {
22609
22652
  "type": "object",
22610
22653
  "properties": {
@@ -22662,6 +22705,11 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
22662
22705
  "type": "integer",
22663
22706
  "description": "Maximum number of results to return.",
22664
22707
  "default": 10
22708
+ },
22709
+ "relevance_criteria": {
22710
+ "type": "string",
22711
+ "maxLength": 1e3,
22712
+ "description": "Optional natural-language stay goal used only to rank matching first-page properties. Omit for ordinary provider ordering; structured date, party-size, price, class, rating, cancellation, and sort filters remain authoritative."
22665
22713
  }
22666
22714
  },
22667
22715
  "required": [
@@ -22872,7 +22920,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
22872
22920
  "app_namespace_py": "videos",
22873
22921
  "skill_method_py": "search",
22874
22922
  "description_key": "videos.search.description",
22875
- "description": "Search for videos, documentaries, tutorials, clips on the web.",
22923
+ "description": "Search for videos, documentaries, tutorials, and clips on the web. When the user states a material viewing purpose or preference that should change ordering, such as audience level, desired depth, format, duration, authority, or freshness, include a concise, faithful relevance_criteria value. Keep country, language, safe-search, freshness, and count constraints structured. A plain video search may omit relevance_criteria; never invent experience level, recency, duration, creator, popularity, or",
22876
22924
  "schema": {
22877
22925
  "type": "object",
22878
22926
  "properties": {
@@ -22882,7 +22930,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
22882
22930
  This parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.
22883
22931
  Example for single search: {"requests": [{"query": "Python tutorial"}]}
22884
22932
  Example for multiple searches: {"requests": [{"query": "Python tutorial"}, {"query": "FastAPI tutorial"}]}
22885
- Each object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch).
22933
+ Each object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch, freshness).
22886
22934
  Note: The 'id' field is auto-generated if not provided - you don't need to include it.
22887
22935
  `,
22888
22936
  "items": {
@@ -22899,6 +22947,11 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
22899
22947
  "maximum": 20,
22900
22948
  "default": 6
22901
22949
  },
22950
+ "relevance_criteria": {
22951
+ "type": "string",
22952
+ "maxLength": 1e3,
22953
+ "description": "Optional natural-language viewing or learning goal used only to rank matching video candidates. Omit for ordinary popularity ordering; structured country, language, safe-search, freshness, and count fields remain authoritative."
22954
+ },
22902
22955
  "country": {
22903
22956
  "type": "string",
22904
22957
  "description": "Country code for localized results. Must be one of: AR, AU, AT, BE, BR, CA, CL, DK, FI, FR, DE, GR, HK, IN, ID, IT, JP, KR, MY, MX, NL, NZ, NO, CN, PL, PT, PH, RU, SA, ZA, ES, SE, CH, TW, TR, GB, US, or ALL (case-insensitive). Defaults to 'us' if invalid.",
@@ -23587,7 +23640,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
23587
23640
  "app_namespace_py": "web",
23588
23641
  "skill_method_py": "search",
23589
23642
  "description_key": "app_skills.web.search.description",
23590
- "description": "General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies.",
23643
+ "description": "General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies. When the user states a material purpose or preference that should change which results are most useful, include a concise, faithful relevance_criteria value (for example, research suitable for a purchase decision). Do not wait for the user to name the field, but omit it for a plain search and never invent preferences.",
23591
23644
  "schema": {
23592
23645
  "type": "object",
23593
23646
  "properties": {
@@ -23597,7 +23650,7 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
23597
23650
  This parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.
23598
23651
  Example for single search: {"requests": [{"query": "Python async"}]}
23599
23652
  Example for multiple searches: {"requests": [{"query": "Python async"}, {"query": "FastAPI best practices"}]}
23600
- Each object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch).
23653
+ Each object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch).
23601
23654
  Note: The 'id' field is auto-generated if not provided - you don't need to include it.
23602
23655
  `,
23603
23656
  "items": {
@@ -23609,10 +23662,15 @@ Note: The 'id' field is auto-generated if not provided - you don't need to inclu
23609
23662
  },
23610
23663
  "count": {
23611
23664
  "type": "integer",
23612
- "description": "Number of results for this request (max 20)",
23665
+ "description": "Number of final results for this request (default 10, max 20).",
23613
23666
  "minimum": 1,
23614
23667
  "maximum": 20,
23615
- "default": 6
23668
+ "default": 10
23669
+ },
23670
+ "relevance_criteria": {
23671
+ "type": "string",
23672
+ "maxLength": 1e3,
23673
+ "description": "Optional concise natural-language purpose or preference for relevance ranking. Include it when the user states a material goal that should change ordering; omit it for a plain search and never invent preferences. When present, the skill ranks up to 40 candidates and still returns only count results.\n"
23616
23674
  },
23617
23675
  "country": {
23618
23676
  "type": "string",
@@ -23982,7 +24040,7 @@ var CodeAppSkills = class {
23982
24040
  return this.runSkill("code", "remove_secrets", input, options);
23983
24041
  }
23984
24042
  /**
23985
- * Run code in an isolated E2B sandbox. When running code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_id from a filename. Use target_embed_id only for an existing chat code embed. Ask the user before running unmodified user-supplied code or after the initial run plus two unprompted reruns. The sandbox installs supported dependency manifests, executes the selected file, streams terminal status, and returns safe artif
24043
+ * Run code in an isolated E2B sandbox or propose an exact command for the currently focused remote Project source. Remote execution requires an explicit one-run approval or an exact currently enabled command preset; never infer approval from Project write mode, chat text, or prior runs. Pass remote commands as argv, never as a composed shell string. When running E2B code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_
23986
24044
  * Description key: app_skills.code.run.description
23987
24045
  * Skill: code/run
23988
24046
  */
@@ -24046,7 +24104,7 @@ var FitnessAppSkills = class {
24046
24104
  this.runSkill = runSkill;
24047
24105
  }
24048
24106
  /**
24049
- * Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max.
24107
+ * Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max. When the user states a material purpose or preference that should change class ordering, include a concise, faithful relevance_criteria value. Keep date, location, radius, plan, attendance mode, min
24050
24108
  * Description key: fitness.search_classes.description
24051
24109
  * Skill: fitness/search_classes
24052
24110
  */
@@ -24054,7 +24112,7 @@ var FitnessAppSkills = class {
24054
24112
  return this.runSkill("fitness", "search_classes", input, options);
24055
24113
  }
24056
24114
  /**
24057
- * Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches.
24115
+ * Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches. When the user states a material purpose or preference that should change venue ordering, include a concise, faithful relevance_criteria value. Keep city, radius, plan, and category constraints structured. A plain venue search may omit it; never
24058
24116
  * Description key: fitness.search_locations.description
24059
24117
  * Skill: fitness/search_locations
24060
24118
  */
@@ -24090,7 +24148,7 @@ var HomeAppSkills = class {
24090
24148
  this.runSkill = runSkill;
24091
24149
  }
24092
24150
  /**
24093
- * Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany.
24151
+ * Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany. When the user states a material preference not fully captured by the structured price, room, size, property-type, or sort fields, include a concise, faithful relevance_criteria value without waiting for the user to
24094
24152
  * Description key: app_skills.home.search.description
24095
24153
  * Skill: home/search
24096
24154
  */
@@ -24140,7 +24198,7 @@ var MapsAppSkills = class {
24140
24198
  this.runSkill = runSkill;
24141
24199
  }
24142
24200
  /**
24143
- * Search for places, businesses, restaurants, directions, locations.
24201
+ * Search for places, businesses, restaurants, directions, and locations. When the user's request states a material purpose or preference that should change which matching places rank first, include a concise, faithful relevance_criteria value without waiting for the user to name the field. Keep location, place type, rating, open-now, price, and required amenity constraints in their structured fields. A plain place search may omit relevance_criteria; never invent quietness, ambience, accessibility,
24144
24202
  * Description key: maps.search.description
24145
24203
  * Skill: maps/search
24146
24204
  */
@@ -24196,7 +24254,7 @@ var NewsAppSkills = class {
24196
24254
  this.runSkill = runSkill;
24197
24255
  }
24198
24256
  /**
24199
- * Search for news articles, current events, headlines, announcements.
24257
+ * Search for news articles, current events, headlines, and announcements. When the user states a material purpose or preference that should change which coverage is most useful, include a concise, faithful relevance_criteria value. Do not wait for the user to name the field, but omit it for a plain news search and never invent preferences.
24200
24258
  * Description key: news.search.description
24201
24259
  * Skill: news/search
24202
24260
  */
@@ -24350,7 +24408,7 @@ var ShoppingAppSkills = class {
24350
24408
  this.runSkill = runSkill;
24351
24409
  }
24352
24410
  /**
24353
- * Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected.
24411
+ * Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected. When the user states a material use case or preference that should change product ordering, include a concise, faithful relevance_criteria value. Keep provider, category, country, department, price, fulfilment, and sort constraints structured. A plain product
24354
24412
  * Description key: app_skills.shopping.search_products.description
24355
24413
  * Skill: shopping/search_products
24356
24414
  */
@@ -24424,7 +24482,7 @@ var TravelAppSkills = class {
24424
24482
  return this.runSkill("travel", "search_connections", input, options);
24425
24483
  }
24426
24484
  /**
24427
- * Run this OpenMates app skill.
24485
+ * Search hotels, hostels, and other stays for explicit dates and party size. When the user states a material stay purpose or preference that should change which valid properties rank first, include a concise, faithful relevance_criteria value. Keep dates, guests, currency, price, hotel class, rating, free cancellation, and sort constraints in their structured fields. A plain stay search may omit relevance_criteria; never invent budget, amenities, neighborhood, quietness, accessibility, workspace,
24428
24486
  * Description key: app_skills.travel.search_stays.description
24429
24487
  * Skill: travel/search_stays
24430
24488
  */
@@ -24462,7 +24520,7 @@ var VideosAppSkills = class {
24462
24520
  return this.runSkill("videos", "get_transcript", input, options);
24463
24521
  }
24464
24522
  /**
24465
- * Search for videos, documentaries, tutorials, clips on the web.
24523
+ * Search for videos, documentaries, tutorials, and clips on the web. When the user states a material viewing purpose or preference that should change ordering, such as audience level, desired depth, format, duration, authority, or freshness, include a concise, faithful relevance_criteria value. Keep country, language, safe-search, freshness, and count constraints structured. A plain video search may omit relevance_criteria; never invent experience level, recency, duration, creator, popularity, or
24466
24524
  * Description key: videos.search.description
24467
24525
  * Skill: videos/search
24468
24526
  */
@@ -24506,7 +24564,7 @@ var WebAppSkills = class {
24506
24564
  return this.runSkill("web", "read", input, options);
24507
24565
  }
24508
24566
  /**
24509
- * General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies.
24567
+ * General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies. When the user states a material purpose or preference that should change which results are most useful, include a concise, faithful relevance_criteria value (for example, research suitable for a purchase decision). Do not wait for the user to name the field, but omit it for a plain search and never invent preferences.
24510
24568
  * Description key: app_skills.web.search.description
24511
24569
  * Skill: web/search
24512
24570
  */
@@ -64436,6 +64494,14 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64436
64494
  description: {
64437
64495
  text: "We use api.video (EU company, France) to host and stream product demo and feature walkthrough videos shown on our website and web app. When you watch a video, your IP address and basic viewing data are processed by api.video. No user account identifiers are shared."
64438
64496
  }
64497
+ },
64498
+ hetzner_v2: {
64499
+ heading: {
64500
+ text: "Hetzner"
64501
+ },
64502
+ description: {
64503
+ text: "We host backend services, databases, caches, S3-compatible object storage, backups, and our self-hosted OpenObserve platform on Hetzner infrastructure in the EU. Hetzner processes TLS-encrypted service traffic and stores ciphertext. Uploads and recordings also pass through its infrastructure before our upload service encrypts them for durable storage. Encryption reduces what Hetzner can read at rest but does not remove Hetzner's role as an infrastructure processor."
64504
+ }
64439
64505
  }
64440
64506
  },
64441
64507
  ai_models: {
@@ -64490,7 +64556,7 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64490
64556
  text: "TypeSafe Jev (via OpenRouter)"
64491
64557
  },
64492
64558
  description: {
64493
- text: "TypeSafe Jev receives bounded recent chat context and candidate metadata through OpenRouter to make internal routing, model-tier, skill, focus-mode, language, and safety decisions. It also checks external text for prompt injection. OpenMates does not send user identifiers, and Jev returns typed decisions rather than generated chat text."
64559
+ text: "TypeSafe Jev receives bounded recent chat context and candidate metadata through OpenRouter to make internal routing, model-tier, skill, focus-mode, language, and safety decisions. It also checks external text for prompt injection. For optional search relevance ranking, it receives the stated relevance criteria, search parameters, and minimized candidate data from supported public searches. OpenMates does not send user identifiers, and Jev returns typed decisions rather than generated chat text."
64494
64560
  }
64495
64561
  },
64496
64562
  cerebras: {
@@ -64564,6 +64630,33 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64564
64630
  description: {
64565
64631
  text: "Z.ai provides GLM-family models. Z.ai receives your chat messages with PII placeholders already substituted client-side only when you select a Z.ai model."
64566
64632
  }
64633
+ },
64634
+ description_v2: {
64635
+ text: "OpenMates routes requests to these providers according to the model or provider-powered feature you use. Eligible typed chat messages use client-side placeholder substitution. Recordings, raw transcripts, uploaded files, reference images, connected-account content, and structured skill inputs are not covered unless a feature explicitly says otherwise. Selectable models show their provider in AI settings."
64636
+ },
64637
+ mistral_v2: {
64638
+ heading: {
64639
+ text: "Mistral AI"
64640
+ },
64641
+ description: {
64642
+ text: "Mistral processes eligible chat messages when you select a Mistral model and processes realtime or uploaded voice audio when you use audio transcription. Voice audio can contain personal or sensitive information and does not receive typed-message placeholder substitution. Mistral states that ordinary API inputs and outputs may be retained for 30 rolling days for abuse monitoring unless zero-data retention is activated; OpenMates does not promise zero-data retention for this path."
64643
+ }
64644
+ },
64645
+ openai_v2: {
64646
+ heading: {
64647
+ text: "OpenAI"
64648
+ },
64649
+ description: {
64650
+ text: "OpenAI processes eligible chat messages when you select a GPT-family model. It also receives image prompts, generation settings, and any reference images when you select GPT Image for generation or editing. Reference images are not covered by typed-message placeholder substitution."
64651
+ }
64652
+ },
64653
+ google_gemini_v2: {
64654
+ heading: {
64655
+ text: "Google Gemini"
64656
+ },
64657
+ description: {
64658
+ text: "Google's Gemini API processes eligible chat messages when you select a Gemini model. Gemini is also used to correct raw Mistral voice transcripts and create titles, and may process prompts, reference images, screenshots, or generated code for image generation or editing, Veo video generation, and screenshot-to-HTML conversion. These non-chat inputs do not receive typed-message placeholder substitution. Google's paid Gemini API terms say prompts and outputs are not used to improve its products, while its current abuse-monitoring documentation states that logged prompts, context, and outputs may be retained for 55 days."
64659
+ }
64567
64660
  }
64568
64661
  },
64569
64662
  image_generation: {
@@ -64732,6 +64825,14 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64732
64825
  description: {
64733
64826
  text: "YouTube is queried when you ask OpenMates to retrieve a transcript for a YouTube video. YouTube receives video URLs and requested transcript language preferences without an OpenMates user identifier."
64734
64827
  }
64828
+ },
64829
+ google_lens: {
64830
+ heading: {
64831
+ text: "Google Lens"
64832
+ },
64833
+ description: {
64834
+ text: "When you request reverse-image search, SerpAPI brokers the request to Google Lens. SerpAPI and Google receive a short-lived public URL to a decrypted copy of the selected image and any optional text refinement. The URL expires, and no OpenMates user identifier is included."
64835
+ }
64735
64836
  }
64736
64837
  },
64737
64838
  travel: {
@@ -64772,6 +64873,22 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64772
64873
  description: {
64773
64874
  text: "Flix provides intercity bus and rail connection results when you search for FlixBus or FlixTrain routes. Flix receives origin, destination, and date search details without an OpenMates user identifier."
64774
64875
  }
64876
+ },
64877
+ serpapi_v2: {
64878
+ heading: {
64879
+ text: "SerpAPI"
64880
+ },
64881
+ description: {
64882
+ text: "SerpAPI powers flight, hotel, Google Events, Amazon product, and Google Lens reverse-image searches. It receives the relevant query and localization filters without an OpenMates user identifier. Reverse-image search also sends a short-lived URL to a decrypted copy of the selected image and any optional refinement query."
64883
+ }
64884
+ },
64885
+ transitous: {
64886
+ heading: {
64887
+ text: "Transitous"
64888
+ },
64889
+ description: {
64890
+ text: "Transitous receives origin and destination stations or locations, travel date and time, transport modes, and route options for supported European public-transport routing. Requests are server-side without an OpenMates user identifier. Transitous states that request URLs and server request metadata are retained for up to two days."
64891
+ }
64775
64892
  }
64776
64893
  },
64777
64894
  events: {
@@ -64804,6 +64921,30 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64804
64921
  description: {
64805
64922
  text: "Resident Advisor powers event search for electronic music events. RA receives your search queries without a user identifier."
64806
64923
  }
64924
+ },
64925
+ eventbrite: {
64926
+ heading: {
64927
+ text: "Eventbrite"
64928
+ },
64929
+ description: {
64930
+ text: "Eventbrite receives the event query, city, category, dates, and requested result count for public event search and page retrieval. Requests are sent server-side without an OpenMates user identifier."
64931
+ }
64932
+ },
64933
+ siegessaeule: {
64934
+ heading: {
64935
+ text: "Siegess\xE4ule"
64936
+ },
64937
+ description: {
64938
+ text: "Siegess\xE4ule receives the date range and, when applicable, a matching event section or category for Berlin LGBTQ+ event listings. Requests are routed through Webshare without an OpenMates user identifier; unmatched free-text filtering happens locally."
64939
+ }
64940
+ },
64941
+ berlin_philharmonic: {
64942
+ heading: {
64943
+ text: "Berliner Philharmoniker"
64944
+ },
64945
+ description: {
64946
+ text: "Berliner Philharmoniker receives the concert query, date filters, tags, and requested result count when you search its public calendar. Requests are sent server-side without an OpenMates user identifier."
64947
+ }
64807
64948
  }
64808
64949
  },
64809
64950
  health: {
@@ -64852,6 +64993,14 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64852
64993
  description: {
64853
64994
  text: "Amazon's product catalogue is queried for live product and price data. Amazon receives your search queries without a user identifier."
64854
64995
  }
64996
+ },
64997
+ stoffe: {
64998
+ heading: {
64999
+ text: "Stoffe.de"
65000
+ },
65001
+ description: {
65002
+ text: "Stoffe.de receives the product query, category, sorting, pagination, and compatible shipping-country filters for fabric, sewing-supply, and pattern searches. Requests are sent server-side without an OpenMates user identifier."
65003
+ }
64855
65004
  }
64856
65005
  },
64857
65006
  nutrition: {
@@ -64984,6 +65133,78 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
64984
65133
  text: "Mastodon is queried when you fetch public Mastodon profile posts. The relevant Mastodon server receives profile identifiers or public profile URLs without an OpenMates user identifier."
64985
65134
  }
64986
65135
  }
65136
+ },
65137
+ model_generation_v2: {
65138
+ heading: {
65139
+ text: "3D model search and generation"
65140
+ },
65141
+ description: {
65142
+ text: "These providers are used only when you search the public 3D model catalog or invoke a 3D model generation skill."
65143
+ },
65144
+ printables: {
65145
+ heading: {
65146
+ text: "Printables by Prusa Research"
65147
+ },
65148
+ description: {
65149
+ text: "Printables receives the 3D model search query and requested result limit when you search its public catalog. The request is sent server-side without an OpenMates user identifier."
65150
+ }
65151
+ }
65152
+ },
65153
+ connected_services: {
65154
+ heading: {
65155
+ text: "Connected services"
65156
+ },
65157
+ description: {
65158
+ text: "These providers are used only after you connect an external account and authorize access. OpenMates requests the scopes needed for the action and stores durable credential material encrypted."
65159
+ },
65160
+ google_calendar: {
65161
+ heading: {
65162
+ text: "Google Calendar"
65163
+ },
65164
+ description: {
65165
+ text: "After you connect Google Calendar, OpenMates exchanges the OAuth authorization code and stores refresh or access tokens encrypted. Authorized actions may access calendar IDs, names, time zones, event IDs, titles, descriptions, locations, dates, and attendee email addresses. OpenMates reads, creates, updates, or deletes only within the scopes and action you authorize."
65166
+ }
65167
+ }
65168
+ },
65169
+ business_data: {
65170
+ heading: {
65171
+ text: "Public company data"
65172
+ },
65173
+ description: {
65174
+ text: "This provider is used only when you explicitly request public company financial information."
65175
+ },
65176
+ sec_edgar: {
65177
+ heading: {
65178
+ text: "SEC EDGAR"
65179
+ },
65180
+ description: {
65181
+ text: "The SEC receives the explicit company name, ticker, or CIK and the filing or period fields needed for a public-company lookup. Requests are sent server-side without an OpenMates user identifier."
65182
+ }
65183
+ }
65184
+ },
65185
+ weather: {
65186
+ heading: {
65187
+ text: "Weather services"
65188
+ },
65189
+ description: {
65190
+ text: "A named place is first geocoded by Open-Meteo. Germany forecasts then use Bright Sky's DWD-derived data; forecasts elsewhere use Open-Meteo. These services receive location and forecast parameters without an OpenMates user identifier."
65191
+ },
65192
+ open_meteo: {
65193
+ heading: {
65194
+ text: "Open-Meteo"
65195
+ },
65196
+ description: {
65197
+ text: "Open-Meteo receives a place name and language for geocoding, and coordinates, date range, time zone, and requested weather fields for global forecasts outside the Germany-specific path. Requests exclude OpenMates user identifiers. Open-Meteo states that API logs may contain coordinates and are deleted after 90 days."
65198
+ }
65199
+ },
65200
+ bright_sky: {
65201
+ heading: {
65202
+ text: "Bright Sky"
65203
+ },
65204
+ description: {
65205
+ text: "Bright Sky receives coordinates, date range, time zone, radar radius, and requested weather fields for Germany forecasts and rain radar using public DWD-derived data. Requests exclude OpenMates user identifiers. Bright Sky does not publish a standalone privacy notice, so the link points to its official service documentation."
65206
+ }
65207
+ }
64987
65208
  }
64988
65209
  },
64989
65210
  title: {
@@ -65233,6 +65454,12 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
65233
65454
  },
65234
65455
  stability_logs: {
65235
65456
  text: "Stability Logs: To diagnose technical errors, anonymized browser console logs (error messages, component status, connection events) are collected from authenticated users and stored for up to 48 hours. If an error occurs, surrounding context is retained for up to 14 days. No message content, chat titles, names, email addresses, or other personally identifiable information is included. A random session identifier (generated per browser tab, not linked to your account) is used for log correlation. You can disable this at any time in Settings > Privacy > Stability Logs."
65457
+ },
65458
+ content_v2: {
65459
+ text: "Content: Chat messages, prompts, attachments, reminders, voice recordings and transcripts, calendar content, and uploaded images or videos needed to provide the service. Structured chat fields are generally encrypted in the browser before sync. Uploads and recordings travel to our backend over TLS and are encrypted before durable object storage; they are not necessarily client-side encrypted before transmission. Anonymous free-usage chats stay on the user's device until signup and are uploaded only if promoted into account sync."
65460
+ },
65461
+ connected_accounts: {
65462
+ text: "Connected accounts: If you connect an external account, we process the provider, granted scopes, encrypted credential material, and the data needed for each authorized action. For Google Calendar this can include calendar names, time zones, event titles, descriptions, locations, dates, attendee email addresses, and provider event IDs."
65236
65463
  }
65237
65464
  },
65238
65465
  data_retention: {
@@ -65526,6 +65753,22 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
65526
65753
  answer: {
65527
65754
  text: "If you have very high privacy requirements, consider the [self-hosting edition](https://github.com/glowingkitty/OpenMates/blob/dev/docs/self-hosting/setup.md) of OpenMates with local or offline AI models instead of third-party AI providers. This gives you more control over infrastructure, model choice, logs, backups, and provider exposure. It requires technical experience, ongoing maintenance, secure server administration, and enough hardware for useful local AI inference. Self-hosting does not automatically make everything private: you still need to secure the server, backups, secrets, network access, logs, and any external providers you enable."
65528
65755
  }
65756
+ },
65757
+ third_party_providers_v2: {
65758
+ question: {
65759
+ text: "Do third-party providers receive my content?"
65760
+ },
65761
+ answer: {
65762
+ text: "Yes, when you choose a model or use a provider-powered feature, the content needed for that request may be sent to the provider. Eligible typed chat messages use client-side placeholder substitution for recognized personal details and secrets. Anything not detected may be sent as typed, and the protection does not cover voice recordings, raw transcripts, uploaded files, reference images, calendar content, or structured skill inputs unless a feature explicitly says otherwise."
65763
+ }
65764
+ },
65765
+ voice_recordings: {
65766
+ question: {
65767
+ text: "What happens when I record audio?"
65768
+ },
65769
+ answer: {
65770
+ text: "Audio travels over TLS through the OpenMates backend hosted by Hetzner and is sent to Mistral for transcription. Realtime audio is streamed; uploaded recordings are encrypted by our upload service before durable storage and decrypted only in server memory for transcription. The raw transcript is then sent to Google Gemini to correct obvious transcription errors and create a title. Audio and raw transcripts do not receive the placeholder substitution used for eligible typed chat messages. OpenMates stores recordings and transcripts as encrypted account content, but Mistral and Google may retain API request data under their own policies."
65771
+ }
65529
65772
  }
65530
65773
  },
65531
65774
  protection: {
@@ -65699,6 +65942,22 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
65699
65942
  description: {
65700
65943
  text: "OpenMates is open source. Every promise above is backed by code you can read, tests you can run, and architecture documents you can audit in our public repository. Our privacy-promises registry links each claim to the exact files that enforce it."
65701
65944
  }
65945
+ },
65946
+ client_side_chat_encryption_v2: {
65947
+ heading: {
65948
+ text: "Structured chat data is encrypted before sync"
65949
+ },
65950
+ description: {
65951
+ text: "Structured chat data, settings, and memories are encrypted in your browser with AES-256-GCM before sync, and the server stores ciphertext on disk, in caches, and in backups. Uploaded files and recordings instead travel to our backend over TLS and are encrypted by the upload service before durable storage. This is not end-to-end encryption; server-side tasks decrypt relevant content transiently in memory when needed to provide a requested feature."
65952
+ }
65953
+ },
65954
+ pii_placeholder_substitution_v2: {
65955
+ heading: {
65956
+ text: "Recognized personal data is replaced in eligible typed chat"
65957
+ },
65958
+ description: {
65959
+ text: "Before an eligible typed chat message is sent to an AI provider, your browser detects supported categories of personal data and secrets and replaces recognized values with placeholders. The substitution map is encrypted with your chat key. Detection can miss data, and this protection does not cover voice audio, raw transcripts, uploaded files, reference images, connected-account content, or structured skill inputs unless a feature explicitly says otherwise."
65960
+ }
65702
65961
  }
65703
65962
  },
65704
65963
  limitations_of_erasure: {
@@ -65747,6 +66006,14 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
65747
66006
  description: {
65748
66007
  text: "Ciphertext backups of your own data exports live in S3 for 60 days via a lifecycle rule, so you can retrieve an export if your device is lost. Because we destroyed your encryption key when you deleted your account, we cannot decrypt these backups either \u2014 they are effectively inert ciphertext until they expire."
65749
66008
  }
66009
+ },
66010
+ third_party_ai_logs_v2: {
66011
+ heading: {
66012
+ text: "Logs retained by third-party AI providers"
66013
+ },
66014
+ description: {
66015
+ text: "AI providers retain request logs under their own policies, independently of OpenMates, and we cannot delete data from their systems. Retention is provider-specific; for example, Mistral states 30 rolling days for ordinary API input and output unless zero-data retention is active, while Google's current Gemini abuse-monitoring documentation states 55 days for logged prompts, context, and outputs. Eligible typed chat uses client-side placeholder substitution, which reduces exposure but may miss data and does not cover voice audio, raw transcripts, uploaded or reference files, connected-account content, or structured skill inputs unless a feature explicitly says otherwise."
66016
+ }
65750
66017
  }
65751
66018
  },
65752
66019
  training_policies: {
@@ -65777,6 +66044,9 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
65777
66044
  status_limited_use: {
65778
66045
  text: "Anonymized derivatives may be used"
65779
66046
  }
66047
+ },
66048
+ provider_link_label_v2: {
66049
+ text: "Provider privacy or legal information"
65780
66050
  }
65781
66051
  },
65782
66052
  terms: {
package/dist/cli.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  serializeToYaml,
20
20
  shouldRequireTrustedAccountGuard,
21
21
  waitForWorkflowRun
22
- } from "./chunk-QVKOXAEV.js";
22
+ } from "./chunk-WDFC7XBM.js";
23
23
  import "./chunk-IWKP55ZB.js";
24
24
  import "./chunk-BBKJZ23O.js";
25
25
  export {
package/dist/index.d.ts CHANGED
@@ -395,7 +395,7 @@ declare const APP_SKILL_METADATA: readonly [{
395
395
  readonly app_namespace_py: "code";
396
396
  readonly skill_method_py: "run";
397
397
  readonly description_key: "app_skills.code.run.description";
398
- readonly description: "Run code in an isolated E2B sandbox. When running code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_id from a filename. Use target_embed_id only for an existing chat code embed. Ask the user before running unmodified user-supplied code or after the initial run plus two unprompted reruns. The sandbox installs supported dependency manifests, executes the selected file, streams terminal status, and returns safe artif";
398
+ readonly description: "Run code in an isolated E2B sandbox or propose an exact command for the currently focused remote Project source. Remote execution requires an explicit one-run approval or an exact currently enabled command preset; never infer approval from Project write mode, chat text, or prior runs. Pass remote commands as argv, never as a composed shell string. When running E2B code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_";
399
399
  readonly schema: {
400
400
  readonly type: "object";
401
401
  readonly properties: {
@@ -926,6 +926,11 @@ declare const APP_SKILL_METADATA: readonly [{
926
926
  readonly maximum: 50;
927
927
  readonly default: 10;
928
928
  };
929
+ readonly relevance_criteria: {
930
+ readonly type: "string";
931
+ readonly maxLength: 1000;
932
+ readonly description: "Optional concise natural-language event-selection purpose used for relevance ranking. Include it whenever the user states a material goal such as networking, promoting a product, finding potential users, or future speaking opportunities; omit it for a plain event search and never invent preferences. When present, the skill ranks a bounded pool of up to 40 candidates (or the larger requested count) and still returns only count events.\n";
933
+ };
929
934
  readonly provider: {
930
935
  readonly type: "string";
931
936
  readonly description: "Provider for this request. Overrides the top-level provider when set.";
@@ -1166,7 +1171,7 @@ declare const APP_SKILL_METADATA: readonly [{
1166
1171
  readonly app_namespace_py: "fitness";
1167
1172
  readonly skill_method_py: "search_locations";
1168
1173
  readonly description_key: "fitness.search_locations.description";
1169
- readonly description: "Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches.";
1174
+ readonly description: "Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches. When the user states a material purpose or preference that should change venue ordering, include a concise, faithful relevance_criteria value. Keep city, radius, plan, and category constraints structured. A plain venue search may omit it; never";
1170
1175
  readonly schema: {
1171
1176
  readonly type: "object";
1172
1177
  readonly properties: {
@@ -1200,7 +1205,15 @@ declare const APP_SKILL_METADATA: readonly [{
1200
1205
  readonly type: "string";
1201
1206
  };
1202
1207
  readonly limit: {
1203
- readonly type: "number";
1208
+ readonly type: "integer";
1209
+ readonly minimum: 1;
1210
+ readonly maximum: 50;
1211
+ readonly default: 10;
1212
+ };
1213
+ readonly relevance_criteria: {
1214
+ readonly type: "string";
1215
+ readonly maxLength: 1000;
1216
+ readonly description: "Optional natural-language activity goal used only to rank matching fitness locations. Omit for distance-first provider ordering; structured city, radius, plan, and category filters remain authoritative.";
1204
1217
  };
1205
1218
  };
1206
1219
  };
@@ -1216,7 +1229,7 @@ declare const APP_SKILL_METADATA: readonly [{
1216
1229
  readonly app_namespace_py: "fitness";
1217
1230
  readonly skill_method_py: "search_classes";
1218
1231
  readonly description_key: "fitness.search_classes.description";
1219
- readonly description: "Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max.";
1232
+ readonly description: "Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max. When the user states a material purpose or preference that should change class ordering, include a concise, faithful relevance_criteria value. Keep date, location, radius, plan, attendance mode, min";
1220
1233
  readonly schema: {
1221
1234
  readonly type: "object";
1222
1235
  readonly properties: {
@@ -1268,7 +1281,15 @@ declare const APP_SKILL_METADATA: readonly [{
1268
1281
  readonly type: "string";
1269
1282
  };
1270
1283
  readonly limit: {
1271
- readonly type: "number";
1284
+ readonly type: "integer";
1285
+ readonly minimum: 1;
1286
+ readonly maximum: 50;
1287
+ readonly default: 10;
1288
+ };
1289
+ readonly relevance_criteria: {
1290
+ readonly type: "string";
1291
+ readonly maxLength: 1000;
1292
+ readonly description: "Optional natural-language activity goal used only to rank matching fitness classes. Omit for chronological provider ordering; structured date, location, radius, plan, attendance, spots, category, and venue filters remain authoritative.";
1272
1293
  };
1273
1294
  };
1274
1295
  };
@@ -1368,7 +1389,7 @@ declare const APP_SKILL_METADATA: readonly [{
1368
1389
  readonly app_namespace_py: "home";
1369
1390
  readonly skill_method_py: "search";
1370
1391
  readonly description_key: "app_skills.home.search.description";
1371
- readonly description: "Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany.";
1392
+ readonly description: "Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany. When the user states a material preference not fully captured by the structured price, room, size, property-type, or sort fields, include a concise, faithful relevance_criteria value without waiting for the user to";
1372
1393
  readonly schema: {
1373
1394
  readonly type: "object";
1374
1395
  readonly properties: {
@@ -1423,6 +1444,11 @@ declare const APP_SKILL_METADATA: readonly [{
1423
1444
  readonly minimum: 0;
1424
1445
  readonly description: "Minimum advertised area in square metres. Unknown area is excluded when set.";
1425
1446
  };
1447
+ readonly relevance_criteria: {
1448
+ readonly type: "string";
1449
+ readonly maxLength: 1000;
1450
+ readonly description: "Optional concise natural-language housing preference for relevance ranking. Include it when the user states a material preference not fully represented by structured filters; omit it for a plain search. Rank only explicit listing facts and never infer unstated amenities, commute, lease, accessibility, or neighborhood qualities. The internal candidate pool is bounded and only max_results listings are returned.\n";
1451
+ };
1426
1452
  readonly max_results: {
1427
1453
  readonly type: "integer";
1428
1454
  readonly description: "Maximum number of listings to return (1-20, default 10).";
@@ -1804,13 +1830,13 @@ declare const APP_SKILL_METADATA: readonly [{
1804
1830
  readonly app_namespace_py: "maps";
1805
1831
  readonly skill_method_py: "search";
1806
1832
  readonly description_key: "maps.search.description";
1807
- readonly description: "Search for places, businesses, restaurants, directions, locations.";
1833
+ readonly description: "Search for places, businesses, restaurants, directions, and locations. When the user's request states a material purpose or preference that should change which matching places rank first, include a concise, faithful relevance_criteria value without waiting for the user to name the field. Keep location, place type, rating, open-now, price, and required amenity constraints in their structured fields. A plain place search may omit relevance_criteria; never invent quietness, ambience, accessibility,";
1808
1834
  readonly schema: {
1809
1835
  readonly type: "object";
1810
1836
  readonly properties: {
1811
1837
  readonly requests: {
1812
1838
  readonly type: "array";
1813
- readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"restaurants in Berlin\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"restaurants in Berlin\"}, {\"query\": \"museums in Berlin\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (pageSize, languageCode, locationBias, includedType, minRating, openNow, includeReviews).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
1839
+ readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"restaurants in Berlin\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"restaurants in Berlin\"}, {\"query\": \"museums in Berlin\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (pageSize, relevance_criteria, languageCode, locationBias, includedType, minRating, openNow, includeReviews).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
1814
1840
  readonly items: {
1815
1841
  readonly type: "object";
1816
1842
  readonly properties: {
@@ -1825,6 +1851,11 @@ declare const APP_SKILL_METADATA: readonly [{
1825
1851
  readonly maximum: 20;
1826
1852
  readonly default: 10;
1827
1853
  };
1854
+ readonly relevance_criteria: {
1855
+ readonly type: "string";
1856
+ readonly maxLength: 1000;
1857
+ readonly description: "Optional natural-language goal used only to rank matching place candidates. Omit for ordinary provider ordering; structured place, rating, open-now, price, location, and amenity filters remain authoritative.";
1858
+ };
1828
1859
  readonly languageCode: {
1829
1860
  readonly type: "string";
1830
1861
  readonly description: "Language code for results (ISO 639-1, e.g., 'en', 'es', 'fr', 'de'). Defaults to 'en' if not specified.";
@@ -2119,13 +2150,13 @@ declare const APP_SKILL_METADATA: readonly [{
2119
2150
  readonly app_namespace_py: "news";
2120
2151
  readonly skill_method_py: "search";
2121
2152
  readonly description_key: "news.search.description";
2122
- readonly description: "Search for news articles, current events, headlines, announcements.";
2153
+ readonly description: "Search for news articles, current events, headlines, and announcements. When the user states a material purpose or preference that should change which coverage is most useful, include a concise, faithful relevance_criteria value. Do not wait for the user to name the field, but omit it for a plain news search and never invent preferences.";
2123
2154
  readonly schema: {
2124
2155
  readonly type: "object";
2125
2156
  readonly properties: {
2126
2157
  readonly requests: {
2127
2158
  readonly type: "array";
2128
- readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"iPhone news\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"iPhone news\"}, {\"query\": \"MacBook news\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch, freshness).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
2159
+ readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"iPhone news\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"iPhone news\"}, {\"query\": \"MacBook news\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch, freshness).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
2129
2160
  readonly items: {
2130
2161
  readonly type: "object";
2131
2162
  readonly properties: {
@@ -2135,10 +2166,15 @@ declare const APP_SKILL_METADATA: readonly [{
2135
2166
  };
2136
2167
  readonly count: {
2137
2168
  readonly type: "integer";
2138
- readonly description: "Number of results for this request (max 20)";
2169
+ readonly description: "Number of final results for this request (default 10, max 20).";
2139
2170
  readonly minimum: 1;
2140
2171
  readonly maximum: 20;
2141
- readonly default: 6;
2172
+ readonly default: 10;
2173
+ };
2174
+ readonly relevance_criteria: {
2175
+ readonly type: "string";
2176
+ readonly maxLength: 1000;
2177
+ readonly description: "Optional concise natural-language purpose or preference for relevance ranking. Include it when the user states a material goal that should change ordering; omit it for a plain search and never invent preferences. When present, the skill ranks up to 40 candidates and still returns only count results.\n";
2142
2178
  };
2143
2179
  readonly country: {
2144
2180
  readonly type: "string";
@@ -2784,7 +2820,7 @@ declare const APP_SKILL_METADATA: readonly [{
2784
2820
  readonly app_namespace_py: "shopping";
2785
2821
  readonly skill_method_py: "search_products";
2786
2822
  readonly description_key: "app_skills.shopping.search_products.description";
2787
- readonly description: "Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected.";
2823
+ readonly description: "Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected. When the user states a material use case or preference that should change product ordering, include a concise, faithful relevance_criteria value. Keep provider, category, country, department, price, fulfilment, and sort constraints structured. A plain product";
2788
2824
  readonly schema: {
2789
2825
  readonly type: "object";
2790
2826
  readonly properties: {
@@ -2811,8 +2847,15 @@ declare const APP_SKILL_METADATA: readonly [{
2811
2847
  readonly max_results: {
2812
2848
  readonly type: "integer";
2813
2849
  readonly description: "Maximum number of products to return (1-20, default 10).";
2850
+ readonly minimum: 1;
2851
+ readonly maximum: 20;
2814
2852
  readonly default: 10;
2815
2853
  };
2854
+ readonly relevance_criteria: {
2855
+ readonly type: "string";
2856
+ readonly maxLength: 1000;
2857
+ readonly description: "Optional natural-language purchase goal used only to rank matching product candidates. Omit for ordinary provider ordering; structured provider, category, price, country, department, fulfilment, and sort fields remain authoritative.";
2858
+ };
2816
2859
  readonly sort: {
2817
2860
  readonly type: "string";
2818
2861
  readonly description: "Sort order for results. REWE supports: relevance, price_asc, price_desc, new. Amazon supports: relevance, price_asc, price_desc, review_rank, newest, best_sellers. Stoffe.de supports: relevance, price_asc, price_desc, new.\n";
@@ -3346,7 +3389,7 @@ declare const APP_SKILL_METADATA: readonly [{
3346
3389
  readonly app_namespace_py: "travel";
3347
3390
  readonly skill_method_py: "search_stays";
3348
3391
  readonly description_key: "app_skills.travel.search_stays.description";
3349
- readonly description: "Run this OpenMates app skill.";
3392
+ readonly description: "Search hotels, hostels, and other stays for explicit dates and party size. When the user states a material stay purpose or preference that should change which valid properties rank first, include a concise, faithful relevance_criteria value. Keep dates, guests, currency, price, hotel class, rating, free cancellation, and sort constraints in their structured fields. A plain stay search may omit relevance_criteria; never invent budget, amenities, neighborhood, quietness, accessibility, workspace,";
3350
3393
  readonly schema: {
3351
3394
  readonly type: "object";
3352
3395
  readonly properties: {
@@ -3405,6 +3448,11 @@ declare const APP_SKILL_METADATA: readonly [{
3405
3448
  readonly description: "Maximum number of results to return.";
3406
3449
  readonly default: 10;
3407
3450
  };
3451
+ readonly relevance_criteria: {
3452
+ readonly type: "string";
3453
+ readonly maxLength: 1000;
3454
+ readonly description: "Optional natural-language stay goal used only to rank matching first-page properties. Omit for ordinary provider ordering; structured date, party-size, price, class, rating, cancellation, and sort filters remain authoritative.";
3455
+ };
3408
3456
  };
3409
3457
  readonly required: readonly ["query", "check_in_date", "check_out_date"];
3410
3458
  };
@@ -3564,13 +3612,13 @@ declare const APP_SKILL_METADATA: readonly [{
3564
3612
  readonly app_namespace_py: "videos";
3565
3613
  readonly skill_method_py: "search";
3566
3614
  readonly description_key: "videos.search.description";
3567
- readonly description: "Search for videos, documentaries, tutorials, clips on the web.";
3615
+ readonly description: "Search for videos, documentaries, tutorials, and clips on the web. When the user states a material viewing purpose or preference that should change ordering, such as audience level, desired depth, format, duration, authority, or freshness, include a concise, faithful relevance_criteria value. Keep country, language, safe-search, freshness, and count constraints structured. A plain video search may omit relevance_criteria; never invent experience level, recency, duration, creator, popularity, or";
3568
3616
  readonly schema: {
3569
3617
  readonly type: "object";
3570
3618
  readonly properties: {
3571
3619
  readonly requests: {
3572
3620
  readonly type: "array";
3573
- readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"Python tutorial\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"Python tutorial\"}, {\"query\": \"FastAPI tutorial\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
3621
+ readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"Python tutorial\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"Python tutorial\"}, {\"query\": \"FastAPI tutorial\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch, freshness).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
3574
3622
  readonly items: {
3575
3623
  readonly type: "object";
3576
3624
  readonly properties: {
@@ -3585,6 +3633,11 @@ declare const APP_SKILL_METADATA: readonly [{
3585
3633
  readonly maximum: 20;
3586
3634
  readonly default: 6;
3587
3635
  };
3636
+ readonly relevance_criteria: {
3637
+ readonly type: "string";
3638
+ readonly maxLength: 1000;
3639
+ readonly description: "Optional natural-language viewing or learning goal used only to rank matching video candidates. Omit for ordinary popularity ordering; structured country, language, safe-search, freshness, and count fields remain authoritative.";
3640
+ };
3588
3641
  readonly country: {
3589
3642
  readonly type: "string";
3590
3643
  readonly description: "Country code for localized results. Must be one of: AR, AU, AT, BE, BR, CA, CL, DK, FI, FR, DE, GR, HK, IN, ID, IT, JP, KR, MY, MX, NL, NZ, NO, CN, PL, PT, PH, RU, SA, ZA, ES, SE, CH, TW, TR, GB, US, or ALL (case-insensitive). Defaults to 'us' if invalid.";
@@ -4082,13 +4135,13 @@ declare const APP_SKILL_METADATA: readonly [{
4082
4135
  readonly app_namespace_py: "web";
4083
4136
  readonly skill_method_py: "search";
4084
4137
  readonly description_key: "app_skills.web.search.description";
4085
- readonly description: "General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies.";
4138
+ readonly description: "General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies. When the user states a material purpose or preference that should change which results are most useful, include a concise, faithful relevance_criteria value (for example, research suitable for a purchase decision). Do not wait for the user to name the field, but omit it for a plain search and never invent preferences.";
4086
4139
  readonly schema: {
4087
4140
  readonly type: "object";
4088
4141
  readonly properties: {
4089
4142
  readonly requests: {
4090
4143
  readonly type: "array";
4091
- readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"Python async\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"Python async\"}, {\"query\": \"FastAPI best practices\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, country, search_lang, safesearch).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
4144
+ readonly description: "REQUIRED: Array of search request objects for parallel processing (up to 5 requests). \nThis parameter is MANDATORY - you MUST always provide a 'requests' array, even for a single search.\nExample for single search: {\"requests\": [{\"query\": \"Python async\"}]}\nExample for multiple searches: {\"requests\": [{\"query\": \"Python async\"}, {\"query\": \"FastAPI best practices\"}]}\nEach object must contain 'query' (search query string), and can include optional parameters (count, relevance_criteria, country, search_lang, safesearch).\nNote: The 'id' field is auto-generated if not provided - you don't need to include it.\n";
4092
4145
  readonly items: {
4093
4146
  readonly type: "object";
4094
4147
  readonly properties: {
@@ -4098,10 +4151,15 @@ declare const APP_SKILL_METADATA: readonly [{
4098
4151
  };
4099
4152
  readonly count: {
4100
4153
  readonly type: "integer";
4101
- readonly description: "Number of results for this request (max 20)";
4154
+ readonly description: "Number of final results for this request (default 10, max 20).";
4102
4155
  readonly minimum: 1;
4103
4156
  readonly maximum: 20;
4104
- readonly default: 6;
4157
+ readonly default: 10;
4158
+ };
4159
+ readonly relevance_criteria: {
4160
+ readonly type: "string";
4161
+ readonly maxLength: 1000;
4162
+ readonly description: "Optional concise natural-language purpose or preference for relevance ranking. Include it when the user states a material goal that should change ordering; omit it for a plain search and never invent preferences. When present, the skill ranks up to 40 candidates and still returns only count results.\n";
4105
4163
  };
4106
4164
  readonly country: {
4107
4165
  readonly type: "string";
@@ -4335,7 +4393,7 @@ declare class CodeAppSkills {
4335
4393
  */
4336
4394
  removeSecrets<T = unknown>(input: SkillInput, options?: AppSkillRunOptions): Promise<T>;
4337
4395
  /**
4338
- * Run code in an isolated E2B sandbox. When running code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_id from a filename. Use target_embed_id only for an existing chat code embed. Ask the user before running unmodified user-supplied code or after the initial run plus two unprompted reruns. The sandbox installs supported dependency manifests, executes the selected file, streams terminal status, and returns safe artif
4396
+ * Run code in an isolated E2B sandbox or propose an exact command for the currently focused remote Project source. Remote execution requires an explicit one-run approval or an exact currently enabled command preset; never infer approval from Project write mode, chat text, or prior runs. Pass remote commands as argv, never as a composed shell string. When running E2B code the assistant is creating in this same turn, pass the source through files[].code plus entry_path; do not invent a target_embed_
4339
4397
  * Description key: app_skills.code.run.description
4340
4398
  * Skill: code/run
4341
4399
  */
@@ -4381,13 +4439,13 @@ declare class FitnessAppSkills {
4381
4439
  private readonly runSkill;
4382
4440
  constructor(runSkill: AppSkillRunner);
4383
4441
  /**
4384
- * Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max.
4442
+ * Search available Urban Sports Club public fitness classes. Use this when the user asks for dated fitness classes, course availability, free spots, on-site classes, online classes, or plan-filtered Urban Sports classes. Omit plan unless the user explicitly asks for Essential, Classic, Premium, or Max. When the user states a material purpose or preference that should change class ordering, include a concise, faithful relevance_criteria value. Keep date, location, radius, plan, attendance mode, min
4385
4443
  * Description key: fitness.search_classes.description
4386
4444
  * Skill: fitness/search_classes
4387
4445
  */
4388
4446
  searchClasses<T = unknown>(input: SkillInput, options?: AppSkillRunOptions): Promise<T>;
4389
4447
  /**
4390
- * Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches.
4448
+ * Search Urban Sports Club public fitness locations. Use this when the user asks for gyms, studios, pools, or Urban Sports locations near a city, address, or radius. Do not use it for class availability; use fitness.search_classes for dated class searches. When the user states a material purpose or preference that should change venue ordering, include a concise, faithful relevance_criteria value. Keep city, radius, plan, and category constraints structured. A plain venue search may omit it; never
4391
4449
  * Description key: fitness.search_locations.description
4392
4450
  * Skill: fitness/search_locations
4393
4451
  */
@@ -4413,7 +4471,7 @@ declare class HomeAppSkills {
4413
4471
  private readonly runSkill;
4414
4472
  constructor(runSkill: AppSkillRunner);
4415
4473
  /**
4416
- * Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany.
4474
+ * Search for apartments, houses, and WG rooms in German cities. Searches ImmoScout24, Kleinanzeigen, and WG-Gesucht simultaneously. Returns listings with prices, sizes, rooms, addresses, and direct links. Costs 10 credits per search. Use when user asks about finding housing in Germany. When the user states a material preference not fully captured by the structured price, room, size, property-type, or sort fields, include a concise, faithful relevance_criteria value without waiting for the user to
4417
4475
  * Description key: app_skills.home.search.description
4418
4476
  * Skill: home/search
4419
4477
  */
@@ -4449,7 +4507,7 @@ declare class MapsAppSkills {
4449
4507
  private readonly runSkill;
4450
4508
  constructor(runSkill: AppSkillRunner);
4451
4509
  /**
4452
- * Search for places, businesses, restaurants, directions, locations.
4510
+ * Search for places, businesses, restaurants, directions, and locations. When the user's request states a material purpose or preference that should change which matching places rank first, include a concise, faithful relevance_criteria value without waiting for the user to name the field. Keep location, place type, rating, open-now, price, and required amenity constraints in their structured fields. A plain place search may omit relevance_criteria; never invent quietness, ambience, accessibility,
4453
4511
  * Description key: maps.search.description
4454
4512
  * Skill: maps/search
4455
4513
  */
@@ -4489,7 +4547,7 @@ declare class NewsAppSkills {
4489
4547
  private readonly runSkill;
4490
4548
  constructor(runSkill: AppSkillRunner);
4491
4549
  /**
4492
- * Search for news articles, current events, headlines, announcements.
4550
+ * Search for news articles, current events, headlines, and announcements. When the user states a material purpose or preference that should change which coverage is most useful, include a concise, faithful relevance_criteria value. Do not wait for the user to name the field, but omit it for a plain news search and never invent preferences.
4493
4551
  * Description key: news.search.description
4494
4552
  * Skill: news/search
4495
4553
  */
@@ -4601,7 +4659,7 @@ declare class ShoppingAppSkills {
4601
4659
  private readonly runSkill;
4602
4660
  constructor(runSkill: AppSkillRunner);
4603
4661
  /**
4604
- * Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected.
4662
+ * Search products on REWE, Amazon, or Stoffe.de with real-time prices. Use category to route groceries, marketplace products, fabrics, sewing supplies, and patterns to compatible providers. Invalid provider/category combinations are rejected. When the user states a material use case or preference that should change product ordering, include a concise, faithful relevance_criteria value. Keep provider, category, country, department, price, fulfilment, and sort constraints structured. A plain product
4605
4663
  * Description key: app_skills.shopping.search_products.description
4606
4664
  * Skill: shopping/search_products
4607
4665
  */
@@ -4655,7 +4713,7 @@ declare class TravelAppSkills {
4655
4713
  */
4656
4714
  searchConnections<T = unknown>(input: SkillInput, options?: AppSkillRunOptions): Promise<T>;
4657
4715
  /**
4658
- * Run this OpenMates app skill.
4716
+ * Search hotels, hostels, and other stays for explicit dates and party size. When the user states a material stay purpose or preference that should change which valid properties rank first, include a concise, faithful relevance_criteria value. Keep dates, guests, currency, price, hotel class, rating, free cancellation, and sort constraints in their structured fields. A plain stay search may omit relevance_criteria; never invent budget, amenities, neighborhood, quietness, accessibility, workspace,
4659
4717
  * Description key: app_skills.travel.search_stays.description
4660
4718
  * Skill: travel/search_stays
4661
4719
  */
@@ -4683,7 +4741,7 @@ declare class VideosAppSkills {
4683
4741
  */
4684
4742
  getTranscript<T = unknown>(input: SkillInput, options?: AppSkillRunOptions): Promise<T>;
4685
4743
  /**
4686
- * Search for videos, documentaries, tutorials, clips on the web.
4744
+ * Search for videos, documentaries, tutorials, and clips on the web. When the user states a material viewing purpose or preference that should change ordering, such as audience level, desired depth, format, duration, authority, or freshness, include a concise, faithful relevance_criteria value. Keep country, language, safe-search, freshness, and count constraints structured. A plain video search may omit relevance_criteria; never invent experience level, recency, duration, creator, popularity, or
4687
4745
  * Description key: videos.search.description
4688
4746
  * Skill: videos/search
4689
4747
  */
@@ -4715,7 +4773,7 @@ declare class WebAppSkills {
4715
4773
  */
4716
4774
  read<T = unknown>(input: SkillInput, options?: AppSkillRunOptions): Promise<T>;
4717
4775
  /**
4718
- * General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies.
4776
+ * General web search for current information, prices, weather, facts, stocks, sports scores, etc. Use as a fallback when no specialized skill applies. When the user states a material purpose or preference that should change which results are most useful, include a concise, faithful relevance_criteria value (for example, research suitable for a purchase decision). Do not wait for the user to name the field, but omit it for a plain search and never invent preferences.
4719
4777
  * Description key: app_skills.web.search.description
4720
4778
  * Skill: web/search
4721
4779
  */
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ import {
42
42
  selectAssistantMessagesForSpeech,
43
43
  serializeToYaml,
44
44
  summarizeAssistantSpeech
45
- } from "./chunk-QVKOXAEV.js";
45
+ } from "./chunk-WDFC7XBM.js";
46
46
  import "./chunk-IWKP55ZB.js";
47
47
  import "./chunk-BBKJZ23O.js";
48
48
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmates",
3
- "version": "0.21.0-alpha.4",
3
+ "version": "0.21.0-alpha.6",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",