@versini/sassysaint-common 4.63.0 → 4.64.0

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/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare enum ActionColor {
19
19
  * List of all models available TODAY. This is used by the client to display the
20
20
  * list of models.
21
21
  */
22
- export declare const ALL_MODELS: readonly ["gpt-6.1-sol", "gpt-6-luna", "claude-opus-5-5", "claude-sonnet-5-5", "claude-haiku-4-5", "gemini-3.5-flash-lite", "gemini-3.8-flash", "gpt-image-2.5-flare", "gpt-image-2.5-sunburst"];
22
+ export declare const ALL_MODELS: readonly ["gpt-6.1-sol", "gpt-6-luna", "claude-opus-5-5", "claude-sonnet-5-5", "claude-haiku-5-5", "gemini-3.5-flash-lite", "gemini-3.8-flash", "gpt-image-2.5-flare", "gpt-image-2.5-sunburst"];
23
23
 
24
24
  export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
25
25
 
@@ -28,12 +28,14 @@ export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
28
28
  * (and by Settings, to decide which providers get a Response Speed row). It
29
29
  * affects Google and Anthropic. Google members get thinkingLevel, while
30
30
  * non-members get the older numeric thinkingBudget. Anthropic members get an
31
- * `effort`; non-members get none, because claude-haiku-4-5 rejects the
32
- * parameter with a 400 ("This model does not support the effort parameter",
33
- * probed 2026-10-04), so check that a new Anthropic model accepts effort before
34
- * listing it. The OpenAI entries do not change what vercelEngine sends (it sets
35
- * reasoningEffort unconditionally), but they decide whether Settings shows an
36
- * OpenAI Response Speed row, so list every OpenAI chat model.
31
+ * `effort`; non-members get none. Every Anthropic catalog model is a member
32
+ * since claude-haiku-5-5 (low, medium and high probed 2026-10-08), but its
33
+ * predecessor claude-haiku-4-5 rejected the parameter with a 400 ("This model
34
+ * does not support the effort parameter", probed 2026-10-04), so check that a
35
+ * new Anthropic model accepts effort before listing it. The OpenAI entries do
36
+ * not change what vercelEngine sends (it sets reasoningEffort unconditionally),
37
+ * but they decide whether Settings shows an OpenAI Response Speed row, so list
38
+ * every OpenAI chat model.
37
39
  *
38
40
  * Both Google models are listed because Google documents thinking_level for
39
41
  * both ids. This matters more than it looks: our explicit providerOptions
@@ -55,7 +57,7 @@ export declare const APPLICATION_NAME = "Diggidy";
55
57
  * versions change over time.
56
58
  */
57
59
  export declare const APPROXIMATE_MODELS_PER_PROVIDER: {
58
- readonly Anthropic: readonly ["claude-opus-5", "claude-opus-4", "claude-sonnet-5", "claude-sonnet-4", "claude-haiku-4", "claude-3"];
60
+ readonly Anthropic: readonly ["claude-opus-5", "claude-opus-4", "claude-sonnet-5", "claude-sonnet-4", "claude-haiku-5", "claude-haiku-4", "claude-3"];
59
61
  readonly OpenAI: readonly ["gpt-", "o3", "o4"];
60
62
  readonly Google: readonly ["gemini"];
61
63
  readonly Perplexity: readonly ["sonar"];
@@ -213,10 +215,10 @@ export declare const DEFAULT_PROVIDER = "OpenAI";
213
215
  /**
214
216
  * What a user who never touched the setting gets. OpenAI and Google keep the
215
217
  * `low` they were hard-coded to before the setting existed. Anthropic starts on
216
- * medium: unchanged for Opus 5.5, whose API default is medium, and one step
217
- * down from high for Sonnet 5.5, which Anthropic suggests for chat. Defaults
218
- * are applied on read and never stored, so changing one here moves every user
219
- * who has not picked a value.
218
+ * medium: unchanged for Opus 5.5 and Haiku 5.5, whose API default is medium,
219
+ * and one step down from high for Sonnet 5.5, which Anthropic suggests for
220
+ * chat. Defaults are applied on read and never stored, so changing one here
221
+ * moves every user who has not picked a value.
220
222
  */
221
223
  export declare const DEFAULT_RESPONSE_SPEED: {
222
224
  readonly OpenAI: "fast";
@@ -598,7 +600,7 @@ export declare const MEMORY_CATEGORIES: readonly ["preference", "identity", "con
598
600
 
599
601
  export declare type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
600
602
 
601
- export declare const MODEL_ANTHROPIC_LOW = "claude-haiku-4-5";
603
+ export declare const MODEL_ANTHROPIC_LOW = "claude-haiku-5-5";
602
604
 
603
605
  export declare const MODEL_ANTHROPIC_MEDIUM = "claude-sonnet-5-5";
604
606
 
@@ -682,14 +684,21 @@ export declare const MODEL_HUMANIZE_REWRITE = "gemini-3.8-flash";
682
684
  * tokens.
683
685
  *
684
686
  * Bumped gpt-5.6-luna→gpt-6-luna alongside the OpenAI Luna picker tier, at half
685
- * the price (0.10/0.50). Unlike the mini→luna move this one was NOT
686
- * re-measured: the numbers above describe gpt-5.6-luna, so re-run the command
687
- * above before trusting them for gpt-6-luna. This slot shares its id with other
688
- * role slots and a picker tier; modelPricing.ts owns that set, so do not
689
- * restate it here.
687
+ * the price (0.10/0.50), without re-measuring.
688
+ *
689
+ * Moved gpt-6-luna→claude-haiku-5-5 at the same per-token price for prompts of
690
+ * 100K tokens or fewer (see the MODEL_ANTHROPIC_LOW row in modelPricing.ts).
691
+ * gpt-6-luna found the facts but often wrote a role word ("current", "user")
692
+ * where the message id belongs, so validation rejected them. Measured on
693
+ * 2026-10-08: on 40 extractions of a one-line "remember" chat, Haiku stored the
694
+ * fact 40 times against luna's 30; on the salience eval it produced 66/66 valid
695
+ * message ids against luna's 15/63, at about a third of the latency, and used
696
+ * about the same total tokens (104K against 100K, since luna's misses were
697
+ * resampled). Consolidation runs on this slot too; there Haiku uses about twice
698
+ * luna's tokens per call.
690
699
  *
691
700
  */
692
- export declare const MODEL_MEMORY_INFERENCE = "gpt-6-luna";
701
+ export declare const MODEL_MEMORY_INFERENCE = "claude-haiku-5-5";
693
702
 
694
703
  /**
695
704
  * The nutrition fallback runs a web-search-tool lookup for branded products FDC
@@ -816,7 +825,7 @@ export declare interface ModelProviderMatchOptions {
816
825
  */
817
826
  export declare const MODELS_PER_PROVIDER: {
818
827
  readonly OpenAI: readonly ["gpt-6.1-sol", "gpt-6-luna"];
819
- readonly Anthropic: readonly ["claude-opus-5-5", "claude-haiku-4-5", "claude-sonnet-5-5"];
828
+ readonly Anthropic: readonly ["claude-opus-5-5", "claude-haiku-5-5", "claude-sonnet-5-5"];
820
829
  readonly Google: readonly ["gemini-3.5-flash-lite", "gemini-3.8-flash"];
821
830
  readonly Perplexity: readonly ["sonar", "sonar-pro", "perplexity-search"];
822
831
  };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],t=["identity","bio","constraint","professional"],E=e=>t.includes(e);var r,n=((r={})[r.NewChat=0]="NewChat",r[r.Prompts=1]="Prompts",r[r.Attachment=2]="Attachment",r[r.PrivateChat=3]="PrivateChat",r[r.Send=4]="Send",r[r.Header=5]="Header",r[r.Provider=6]="Provider",r[r.Logo=7]="Logo",r[r.Placeholder=8]="Placeholder",r[r.Footer=9]="Footer",r);let a="system",O="user",i="assistant",o="OpenAI",s="Anthropic",_="Google",l="Summary",R="Memory",T="Perplexity",S=o,A=[o,s,_],u="gpt-6.1-sol",P="gpt-6-luna",I="claude-opus-5-5",L="claude-sonnet-5-5",g="claude-haiku-4-5",M="gemini-3.8-flash",c="gemini-3.5-flash-lite",N="sonar",h="sonar-pro",d="perplexity-search",D="openai/gpt-oss-20b:free",p="gpt-6-luna",C="gpt-6-luna",m="gemini-3.5-flash-lite",f="gemini-3.8-flash",U="gpt-6.1-sol",G="gpt-6-luna",y="gpt-5.6-luna",H="gemini-3.6-flash",F="text-embedding-3-small",b="gpt-image-2.5-flare",w="gpt-image-2.5-sunburst",B=5,Y=1e4,v=3e3,V={[u]:"GPT-6.1 Sol",[P]:"GPT-6 Luna",[I]:"Claude Opus 5.5",[L]:"Claude Sonnet 5.5",[g]:"Claude Haiku 4.5",[M]:"Gemini 3.8 Flash",[c]:"Gemini 3.5 Flash-Lite",[N]:"Sonar",[h]:"Sonar Pro",[d]:"Perplexity Search",[b]:"GPT Image 2.5 Flare",[w]:"GPT Image 2.5 Sunburst"},k=[u,P,I,L,g,c,M,b,w],W=[u,P,I,L,M,c],X="fast",x="balanced",K="thorough",z=[X,x,K],Z={[X]:"low",[x]:"medium",[K]:"high"},$={[o]:X,[s]:x,[_]:X},j={[o]:[u,P],[s]:[I,g,L],[_]:[c,M],[T]:[N,h,d]},Q={[o]:[a,O,i],[s]:[O,i],[l]:[O,i],[R]:[O,i],[_]:[O,i],[T]:[O,i]},q={[s]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-4","claude-3"],[o]:["gpt-","o3","o4"],[_]:["gemini"],[T]:["sonar"]},J="x-diggidy-chat-id",ee="x-diggidy-chat-timestamp",et="complete",eE="timestamp",er="tokenUsage",en="Diggidy",ea="sassy:basic",eO="sassy:plus",ei="sassy:advanced",eo={TOOL:{BARCODE:"getProductByBarcode",BUNDLESIZE:"getBundleSize",DATETIME:"getDateTime",GENERATE_IMAGE:"generateImage",IMAGES:"getImages",NUTRITION_FACTS:"getNutritionFacts",POLLUTION:"getAirPollution",WEATHER:"getWeather",URLCONTENTPARSER:"getUrlContent",MEMORIES:"getUserMemories",HUMANIZE:"humanize",WEBSEARCH:"getWebSearch",GITREPOSITORY:"getGitRepoDetails",HOTELS:"getHotelDetails",LOCAL_BUSINESSES:"getLocalBusinesses",PRODUCTS:"getProducts",REVIEW_TRUST:"getReviewTrust",STREAMING_PICKS:"getStreamingPicks",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings",PAST_CHATS:"searchPastChats"},ADDON:{ATTACHMENTS:"addon:attachments",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},es={code_interpreter:"Running code...",web_search:"Searching the web...",[eo.TOOL.WEATHER]:"Checking the weather...",[eo.TOOL.POLLUTION]:"Fetching air pollution data...",[eo.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[eo.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[eo.TOOL.WEBSEARCH]:"Searching the web...",[eo.TOOL.GITREPOSITORY]:"Looking up repository...",[eo.TOOL.HOTELS]:"Searching for hotels...",[eo.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[eo.TOOL.PRODUCTS]:"Searching for products...",[eo.TOOL.REVIEW_TRUST]:"Checking reviews...",[eo.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[eo.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[eo.TOOL.GENERATE_IMAGE]:"Generating image...",[eo.TOOL.BARCODE]:"Looking up product...",[eo.TOOL.PRONUNCIATION]:"Generating pronunciation...",[eo.TOOL.HUMANIZE]:"Rewriting text...",[eo.TOOL.IMAGES]:"Searching for images...",[eo.TOOL.PAST_CHATS]:"Searching your past chats..."},e_="Using tools...",el=1e5,eR=8e5;function eT(e){return e===ei?eR:el}let eS=16384,eA=4,eu=3,eP=8388608,eI="context-compression-summary",eL="data-urlRead",eg="[Note from the system: you read",eM="(?:an?\\s+|another\\s+)?",ec=RegExp(`^(?:(?:ok(?:ay)?|alright|right|hey|hi|hello|yes|yep|yeah|sure|thanks|thank you|please|claude|diggidy)[\\s,]+)*(?:(?:(?:let'?s\\s+|can you\\s+|could you\\s+|can we\\s+|please\\s+)?(?:start|begin|create|open)\\s+)?${eM}(?:new|fresh)\\s+(?:chat|conversation)|${eM}(?:new|fresh)\\s+(?:thread|session))(?:[\\s,]+(?:please|pls|plz|now|thanks|thank you|thx|ty))*$`),eN=/^[^\p{L}\p{N}]+/u,eh=/[^\p{L}\p{N}]+$/u;function ed(e){if(!e||e.length>120)return!1;let t=e.toLowerCase().replace(/’/g,"'").replace(/\s+/g," ").trim().replace(eN,"").replace(eh,"").trim();return""!==t&&ec.test(t)}function eD(e){return{type:eL,data:e}}function ep(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e?.url).map(e=>eD({url:e.url,partial:!1!==e.partial})):[]}let eC=new Set(["OpenAI",s,"Google"]);function em(e){return"string"==typeof e&&eC.has(e)}let ef=/^auto \((.+)\)$/;function eU(e){let t=e.match(ef);return t?t[1]:e}let eG=e=>{for(let[t,E]of Object.entries(q))if(E.some(t=>e.startsWith(t)))return t;return null},ey=/image|embedding|tts|realtime|transcribe|audio/;function eH(e,{matchUnknownByPrefix:t=!1}){for(let[t,E]of Object.entries(j))if(E.includes(e))return em(t)?t:null;if(!t||k.includes(e)||ey.test(e))return null;let E=eG(e);return em(E)?E:null}let eF=(e,t={})=>{if(!e||0===e.length)return[];let E=new Set;for(let r of e){let e=eH(r,t);e&&E.add(e)}return A.filter(e=>E.has(e))},eb=(e,t={})=>{let E=new Map;if(!e||0===e.length)return E;for(let r of e){let e=eH(r,t);e&&(E.has(e)||E.set(e,[]),E.get(e)?.push(r))}return E},ew=(e,t={})=>{for(let E of eb(e,t).values())if(E.length>1)return!0;return!1},eB=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function eY(e,t,E){if(!t||Array.isArray(t)&&0===t.length)return!0;let r=e instanceof Set?e:e?new Set(e):null;return!!r&&0!==r.size&&("string"==typeof t?r.has(t):E?.any===!0?t.some(e=>r.has(e)):t.every(e=>r.has(e)))}function ev(e){return W.includes(e)}function eV(e){let t=t=>{let E=e?.[t];return z.includes(E)?E:$[t]};return{OpenAI:t("OpenAI"),[s]:t(s),Google:t("Google")}}export{k as ALL_MODELS,A as ALL_PROVIDERS,W as ALL_REASONING_MODELS,en as APPLICATION_NAME,q as APPROXIMATE_MODELS_PER_PROVIDER,eo as CAPABILITIES,et as CHAT_COMPLETION_MARKER_KEY,el as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,eR as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,eu as CONTEXT_COMPRESSION_KEEP_IMAGES,eA as CONTEXT_COMPRESSION_KEEP_RECENT,eP as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,eI as CONTEXT_COMPRESSION_SUMMARY_ID,S as DEFAULT_PROVIDER,$ as DEFAULT_RESPONSE_SPEED,e_ as DEFAULT_TOOL_LOADING_LABEL,J as DIGGIDY_CHAT_ID_HEADER,ee as DIGGIDY_CHAT_TIMESTAMP_HEADER,t as HARD_CATEGORIES,eS as MAX_OUTPUT_TOKENS,B as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,j as MODELS_PER_PROVIDER,g as MODEL_ANTHROPIC_LOW,L as MODEL_ANTHROPIC_MEDIUM,I as MODEL_ANTHROPIC_TOP,C as MODEL_CHAT_SUMMARY,D as MODEL_DEV,V as MODEL_DISPLAY_NAMES,F as MODEL_EMBEDDING_TEXT,b as MODEL_GENERATE_IMAGE,w as MODEL_GENERATE_IMAGE_PRECISE,c as MODEL_GOOGLE_MEDIUM,M as MODEL_GOOGLE_TOP,U as MODEL_HUMANIZE_AUDIT,f as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,G as MODEL_NUTRITION_SEARCH,P as MODEL_OPENAI_MEDIUM,u as MODEL_OPENAI_TOP,d as MODEL_PERPLEXITY_SEARCH,y as MODEL_REVIEW_TRUST_PANEL,H as MODEL_REVIEW_TRUST_PANEL_GOOGLE,m as MODEL_SEARCH_DECOMPOSER,N as MODEL_SONAR,h as MODEL_SONAR_PRO,ea as PLAN_BASIC,eO as PLAN_PLUS,ei as PLAN_PREMIUM,s as PROVIDER_ANTHROPIC,_ as PROVIDER_GOOGLE,R as PROVIDER_MEMORY,o as PROVIDER_OPENAI,T as PROVIDER_PERPLEXITY,Q as PROVIDER_ROLE_MAP,l as PROVIDER_SUMMARY,z as RESPONSE_SPEEDS,x as RESPONSE_SPEED_BALANCED,X as RESPONSE_SPEED_FAST,K as RESPONSE_SPEED_THOROUGH,Z as RESPONSE_SPEED_TO_EFFORT,i as ROLE_ASSISTANT,a as ROLE_SYSTEM,O as ROLE_USER,v as SEARCH_DECOMPOSE_TIMEOUT_MS,Y as SEARCH_QUERY_TIMEOUT_MS,eE as SORT_BY_TIMESTAMP,er as SORT_BY_TOKEN_USAGE,es as TOOL_LOADING_LABELS,eg as URL_READ_NOTE_PREFIX,eL as URL_READ_PART_TYPE,eG as findProvider,eT as getCompressionEmergencyThreshold,eb as getModelsGroupedByProvider,eF as getProvidersFromModels,ew as hasMultipleModelsPerProvider,eY as isEntitled,ed as isExplicitNewChatRequest,E as isHardCategory,eB as isModelAllowedForPlan,em as isRealProvider,ev as isReasoningModel,ep as readUrlParts,eV as resolveResponseSpeed,eU as stripAutoWrapper,n as ActionColor,eD as toUrlReadPart};
1
+ let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],t=["identity","bio","constraint","professional"],E=e=>t.includes(e);var r,n=((r={})[r.NewChat=0]="NewChat",r[r.Prompts=1]="Prompts",r[r.Attachment=2]="Attachment",r[r.PrivateChat=3]="PrivateChat",r[r.Send=4]="Send",r[r.Header=5]="Header",r[r.Provider=6]="Provider",r[r.Logo=7]="Logo",r[r.Placeholder=8]="Placeholder",r[r.Footer=9]="Footer",r);let a="system",i="user",O="assistant",o="OpenAI",s="Anthropic",_="Google",l="Summary",R="Memory",T="Perplexity",S=o,A=[o,s,_],u="gpt-6.1-sol",P="gpt-6-luna",I="claude-opus-5-5",L="claude-sonnet-5-5",g="claude-haiku-5-5",M="gemini-3.8-flash",c="gemini-3.5-flash-lite",h="sonar",N="sonar-pro",d="perplexity-search",D="openai/gpt-oss-20b:free",p="claude-haiku-5-5",C="gpt-6-luna",m="gemini-3.5-flash-lite",f="gemini-3.8-flash",U="gpt-6.1-sol",G="gpt-6-luna",y="gpt-5.6-luna",H="gemini-3.6-flash",F="text-embedding-3-small",b="gpt-image-2.5-flare",w="gpt-image-2.5-sunburst",B=5,Y=1e4,v=3e3,k={[u]:"GPT-6.1 Sol",[P]:"GPT-6 Luna",[I]:"Claude Opus 5.5",[L]:"Claude Sonnet 5.5",[g]:"Claude Haiku 5.5",[M]:"Gemini 3.8 Flash",[c]:"Gemini 3.5 Flash-Lite",[h]:"Sonar",[N]:"Sonar Pro",[d]:"Perplexity Search",[b]:"GPT Image 2.5 Flare",[w]:"GPT Image 2.5 Sunburst"},V=[u,P,I,L,g,c,M,b,w],W=[u,P,I,L,g,M,c],X="fast",x="balanced",K="thorough",z=[X,x,K],Z={[X]:"low",[x]:"medium",[K]:"high"},$={[o]:X,[s]:x,[_]:X},j={[o]:[u,P],[s]:[I,g,L],[_]:[c,M],[T]:[h,N,d]},Q={[o]:[a,i,O],[s]:[i,O],[l]:[i,O],[R]:[i,O],[_]:[i,O],[T]:[i,O]},q={[s]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-5","claude-haiku-4","claude-3"],[o]:["gpt-","o3","o4"],[_]:["gemini"],[T]:["sonar"]},J="x-diggidy-chat-id",ee="x-diggidy-chat-timestamp",et="complete",eE="timestamp",er="tokenUsage",en="Diggidy",ea="sassy:basic",ei="sassy:plus",eO="sassy:advanced",eo={TOOL:{BARCODE:"getProductByBarcode",BUNDLESIZE:"getBundleSize",DATETIME:"getDateTime",GENERATE_IMAGE:"generateImage",IMAGES:"getImages",NUTRITION_FACTS:"getNutritionFacts",POLLUTION:"getAirPollution",WEATHER:"getWeather",URLCONTENTPARSER:"getUrlContent",MEMORIES:"getUserMemories",HUMANIZE:"humanize",WEBSEARCH:"getWebSearch",GITREPOSITORY:"getGitRepoDetails",HOTELS:"getHotelDetails",LOCAL_BUSINESSES:"getLocalBusinesses",PRODUCTS:"getProducts",REVIEW_TRUST:"getReviewTrust",STREAMING_PICKS:"getStreamingPicks",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings",PAST_CHATS:"searchPastChats"},ADDON:{ATTACHMENTS:"addon:attachments",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},es={code_interpreter:"Running code...",web_search:"Searching the web...",[eo.TOOL.WEATHER]:"Checking the weather...",[eo.TOOL.POLLUTION]:"Fetching air pollution data...",[eo.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[eo.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[eo.TOOL.WEBSEARCH]:"Searching the web...",[eo.TOOL.GITREPOSITORY]:"Looking up repository...",[eo.TOOL.HOTELS]:"Searching for hotels...",[eo.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[eo.TOOL.PRODUCTS]:"Searching for products...",[eo.TOOL.REVIEW_TRUST]:"Checking reviews...",[eo.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[eo.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[eo.TOOL.GENERATE_IMAGE]:"Generating image...",[eo.TOOL.BARCODE]:"Looking up product...",[eo.TOOL.PRONUNCIATION]:"Generating pronunciation...",[eo.TOOL.HUMANIZE]:"Rewriting text...",[eo.TOOL.IMAGES]:"Searching for images...",[eo.TOOL.PAST_CHATS]:"Searching your past chats..."},e_="Using tools...",el=1e5,eR=8e5;function eT(e){return e===eO?eR:el}let eS=16384,eA=4,eu=3,eP=8388608,eI="context-compression-summary",eL="data-urlRead",eg="[Note from the system: you read",eM="(?:an?\\s+|another\\s+)?",ec=RegExp(`^(?:(?:ok(?:ay)?|alright|right|hey|hi|hello|yes|yep|yeah|sure|thanks|thank you|please|claude|diggidy)[\\s,]+)*(?:(?:(?:let'?s\\s+|can you\\s+|could you\\s+|can we\\s+|please\\s+)?(?:start|begin|create|open)\\s+)?${eM}(?:new|fresh)\\s+(?:chat|conversation)|${eM}(?:new|fresh)\\s+(?:thread|session))(?:[\\s,]+(?:please|pls|plz|now|thanks|thank you|thx|ty))*$`),eh=/^[^\p{L}\p{N}]+/u,eN=/[^\p{L}\p{N}]+$/u;function ed(e){if(!e||e.length>120)return!1;let t=e.toLowerCase().replace(/’/g,"'").replace(/\s+/g," ").trim().replace(eh,"").replace(eN,"").trim();return""!==t&&ec.test(t)}function eD(e){return{type:eL,data:e}}function ep(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e?.url).map(e=>eD({url:e.url,partial:!1!==e.partial})):[]}let eC=new Set(["OpenAI",s,"Google"]);function em(e){return"string"==typeof e&&eC.has(e)}let ef=/^auto \((.+)\)$/;function eU(e){let t=e.match(ef);return t?t[1]:e}let eG=e=>{for(let[t,E]of Object.entries(q))if(E.some(t=>e.startsWith(t)))return t;return null},ey=/image|embedding|tts|realtime|transcribe|audio/;function eH(e,{matchUnknownByPrefix:t=!1}){for(let[t,E]of Object.entries(j))if(E.includes(e))return em(t)?t:null;if(!t||V.includes(e)||ey.test(e))return null;let E=eG(e);return em(E)?E:null}let eF=(e,t={})=>{if(!e||0===e.length)return[];let E=new Set;for(let r of e){let e=eH(r,t);e&&E.add(e)}return A.filter(e=>E.has(e))},eb=(e,t={})=>{let E=new Map;if(!e||0===e.length)return E;for(let r of e){let e=eH(r,t);e&&(E.has(e)||E.set(e,[]),E.get(e)?.push(r))}return E},ew=(e,t={})=>{for(let E of eb(e,t).values())if(E.length>1)return!0;return!1},eB=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function eY(e,t,E){if(!t||Array.isArray(t)&&0===t.length)return!0;let r=e instanceof Set?e:e?new Set(e):null;return!!r&&0!==r.size&&("string"==typeof t?r.has(t):E?.any===!0?t.some(e=>r.has(e)):t.every(e=>r.has(e)))}function ev(e){return W.includes(e)}function ek(e){let t=t=>{let E=e?.[t];return z.includes(E)?E:$[t]};return{OpenAI:t("OpenAI"),[s]:t(s),Google:t("Google")}}export{V as ALL_MODELS,A as ALL_PROVIDERS,W as ALL_REASONING_MODELS,en as APPLICATION_NAME,q as APPROXIMATE_MODELS_PER_PROVIDER,eo as CAPABILITIES,et as CHAT_COMPLETION_MARKER_KEY,el as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,eR as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,eu as CONTEXT_COMPRESSION_KEEP_IMAGES,eA as CONTEXT_COMPRESSION_KEEP_RECENT,eP as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,eI as CONTEXT_COMPRESSION_SUMMARY_ID,S as DEFAULT_PROVIDER,$ as DEFAULT_RESPONSE_SPEED,e_ as DEFAULT_TOOL_LOADING_LABEL,J as DIGGIDY_CHAT_ID_HEADER,ee as DIGGIDY_CHAT_TIMESTAMP_HEADER,t as HARD_CATEGORIES,eS as MAX_OUTPUT_TOKENS,B as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,j as MODELS_PER_PROVIDER,g as MODEL_ANTHROPIC_LOW,L as MODEL_ANTHROPIC_MEDIUM,I as MODEL_ANTHROPIC_TOP,C as MODEL_CHAT_SUMMARY,D as MODEL_DEV,k as MODEL_DISPLAY_NAMES,F as MODEL_EMBEDDING_TEXT,b as MODEL_GENERATE_IMAGE,w as MODEL_GENERATE_IMAGE_PRECISE,c as MODEL_GOOGLE_MEDIUM,M as MODEL_GOOGLE_TOP,U as MODEL_HUMANIZE_AUDIT,f as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,G as MODEL_NUTRITION_SEARCH,P as MODEL_OPENAI_MEDIUM,u as MODEL_OPENAI_TOP,d as MODEL_PERPLEXITY_SEARCH,y as MODEL_REVIEW_TRUST_PANEL,H as MODEL_REVIEW_TRUST_PANEL_GOOGLE,m as MODEL_SEARCH_DECOMPOSER,h as MODEL_SONAR,N as MODEL_SONAR_PRO,ea as PLAN_BASIC,ei as PLAN_PLUS,eO as PLAN_PREMIUM,s as PROVIDER_ANTHROPIC,_ as PROVIDER_GOOGLE,R as PROVIDER_MEMORY,o as PROVIDER_OPENAI,T as PROVIDER_PERPLEXITY,Q as PROVIDER_ROLE_MAP,l as PROVIDER_SUMMARY,z as RESPONSE_SPEEDS,x as RESPONSE_SPEED_BALANCED,X as RESPONSE_SPEED_FAST,K as RESPONSE_SPEED_THOROUGH,Z as RESPONSE_SPEED_TO_EFFORT,O as ROLE_ASSISTANT,a as ROLE_SYSTEM,i as ROLE_USER,v as SEARCH_DECOMPOSE_TIMEOUT_MS,Y as SEARCH_QUERY_TIMEOUT_MS,eE as SORT_BY_TIMESTAMP,er as SORT_BY_TOKEN_USAGE,es as TOOL_LOADING_LABELS,eg as URL_READ_NOTE_PREFIX,eL as URL_READ_PART_TYPE,eG as findProvider,eT as getCompressionEmergencyThreshold,eb as getModelsGroupedByProvider,eF as getProvidersFromModels,ew as hasMultipleModelsPerProvider,eY as isEntitled,ed as isExplicitNewChatRequest,E as isHardCategory,eB as isModelAllowedForPlan,em as isRealProvider,ev as isReasoningModel,ep as readUrlParts,ek as resolveResponseSpeed,eU as stripAutoWrapper,n as ActionColor,eD as toUrlReadPart};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.63.0",
3
+ "version": "4.64.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {