@versini/sassysaint-common 4.77.0 → 4.78.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.
@@ -1 +1 @@
1
- export*from"./memory.js";export*from"./theme-types.js";let E="system",O="user",e="assistant",_="OpenAI",R="Anthropic",S="Google",T="Summary",t="Memory",A="Perplexity",a=_,I=[_,R,S],L="gpt-6.1-sol",i="gpt-6-luna",s="claude-opus-5-5",N="claude-sonnet-5-5",P="claude-haiku-5-5",D="gemini-3.8-flash",n="gemini-3.5-flash-lite",o="sonar",r="sonar-pro",M="perplexity-search",g="openai/gpt-oss-20b:free",C="perplexity-search",l="openai-web-search",u="google-tts-chirp3-hd",c="google-tts-neural2",U="google-tts-wavenet",h="serpapi",d="iproyal-residential",p="claude-haiku-5-5",G="gpt-6-luna",H="gemini-3.5-flash-lite",m="gemini-3.8-flash",V="gpt-6.1-sol",y="gpt-6-luna",B="gpt-5.6-luna",Y="gemini-3.6-flash",F="text-embedding-3-small",W="gpt-image-2.6-sunburst",X=5,f=1e4,b=3e3,w={[L]:"GPT-6.1 Sol",[i]:"GPT-6 Luna",[s]:"Claude Opus 5.5",[N]:"Claude Sonnet 5.5",[P]:"Claude Haiku 5.5",[D]:"Gemini 3.8 Flash",[n]:"Gemini 3.5 Flash-Lite",[o]:"Sonar",[r]:"Sonar Pro",[M]:"Perplexity Search",[W]:"GPT Image 2.6 Sunburst"},k=[L,i,s,N,P,n,D,W],x=[L,i,s,N,P,D,n],K="fast",Z="balanced",Q="thorough",v=[K,Z,Q],z={[K]:"low",[Z]:"medium",[Q]:"high"},j={[_]:K,[R]:Z,[S]:K},q=2,J="none",$=["settings","shortcuts","memories","history","usage","about"],EE={[_]:[L,i],[R]:[s,P,N],[S]:[n,D],[A]:[o,r,M]},EO={[_]:[E,O,e],[R]:[O,e],[T]:[O,e],[t]:[O,e],[S]:[O,e],[A]:[O,e]},Ee={[R]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-5","claude-haiku-4","claude-3"],[_]:["gpt-","o3","o4"],[S]:["gemini"],[A]:["sonar"]},E_="x-diggidy-chat-id",ER="SERVICE_PAUSED",ES="CREDITS_EXHAUSTED",ET="CREDITS_ON_HOLD",Et=.01,EA=.2,Ea="x-diggidy-chat-timestamp",EI="complete",EL="timestamp",Ei="tokenUsage",Es="Diggidy",EN="sassy:basic",EP="sassy:plus",ED="sassy:none",En={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",NEWS_BRIEF:"getNewsBrief",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"}},Eo={code_interpreter:"Running code...",web_search:"Searching the web...",[En.TOOL.WEATHER]:"Checking the weather...",[En.TOOL.POLLUTION]:"Fetching air pollution data...",[En.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[En.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[En.TOOL.WEBSEARCH]:"Searching the web...",[En.TOOL.GITREPOSITORY]:"Looking up repository...",[En.TOOL.HOTELS]:"Searching for hotels...",[En.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[En.TOOL.NEWS_BRIEF]:"Reading today's news...",[En.TOOL.PRODUCTS]:"Searching for products...",[En.TOOL.REVIEW_TRUST]:"Checking reviews...",[En.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[En.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[En.TOOL.GENERATE_IMAGE]:"Generating image...",[En.TOOL.BARCODE]:"Looking up product...",[En.TOOL.PRONUNCIATION]:"Generating pronunciation...",[En.TOOL.HUMANIZE]:"Rewriting text...",[En.TOOL.IMAGES]:"Searching for images...",[En.TOOL.PAST_CHATS]:"Searching your past chats..."},Er="Using tools...",EM=8e5,Eg=16384,EC=4,El=3,Eu=8388608,Ec="context-compression-summary",EU="data-urlRead",Eh="[Note from the system: you read",Ed="data-newsLinks";export{k as ALL_MODELS,I as ALL_PROVIDERS,x as ALL_REASONING_MODELS,Es as APPLICATION_NAME,Ee as APPROXIMATE_MODELS_PER_PROVIDER,En as CAPABILITIES,EI as CHAT_COMPLETION_MARKER_KEY,EM as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,El as CONTEXT_COMPRESSION_KEEP_IMAGES,EC as CONTEXT_COMPRESSION_KEEP_RECENT,Eu as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,Ec as CONTEXT_COMPRESSION_SUMMARY_ID,ES as CREDITS_EXHAUSTED,ET as CREDITS_ON_HOLD,Et as CREDIT_USD,a as DEFAULT_PROVIDER,j as DEFAULT_RESPONSE_SPEED,Er as DEFAULT_TOOL_LOADING_LABEL,E_ as DIGGIDY_CHAT_ID_HEADER,Ea as DIGGIDY_CHAT_TIMESTAMP_HEADER,EA as LOW_CREDITS_SHARE,Eg as MAX_OUTPUT_TOKENS,X as MAX_SEARCH_QUERIES,EE as MODELS_PER_PROVIDER,P as MODEL_ANTHROPIC_LOW,N as MODEL_ANTHROPIC_MEDIUM,s as MODEL_ANTHROPIC_TOP,G as MODEL_CHAT_SUMMARY,g as MODEL_DEV,w as MODEL_DISPLAY_NAMES,F as MODEL_EMBEDDING_TEXT,W as MODEL_GENERATE_IMAGE,n as MODEL_GOOGLE_MEDIUM,D as MODEL_GOOGLE_TOP,V as MODEL_HUMANIZE_AUDIT,m as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,y as MODEL_NUTRITION_SEARCH,i as MODEL_OPENAI_MEDIUM,L as MODEL_OPENAI_TOP,M as MODEL_PERPLEXITY_SEARCH,B as MODEL_REVIEW_TRUST_PANEL,Y as MODEL_REVIEW_TRUST_PANEL_GOOGLE,H as MODEL_SEARCH_DECOMPOSER,o as MODEL_SONAR,r as MODEL_SONAR_PRO,Ed as NEWS_LINKS_PART_TYPE,EN as PLAN_BASIC,ED as PLAN_NONE,EP as PLAN_PLUS,R as PROVIDER_ANTHROPIC,S as PROVIDER_GOOGLE,t as PROVIDER_MEMORY,_ as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,EO as PROVIDER_ROLE_MAP,T as PROVIDER_SUMMARY,q as QUICK_ACCESS_MAX,J as QUICK_ACCESS_NONE,$ as QUICK_ACCESS_PANELS,v as RESPONSE_SPEEDS,Z as RESPONSE_SPEED_BALANCED,K as RESPONSE_SPEED_FAST,Q as RESPONSE_SPEED_THOROUGH,z as RESPONSE_SPEED_TO_EFFORT,e as ROLE_ASSISTANT,E as ROLE_SYSTEM,O as ROLE_USER,b as SEARCH_DECOMPOSE_TIMEOUT_MS,f as SEARCH_QUERY_TIMEOUT_MS,ER as SERVICE_PAUSED,EL as SORT_BY_TIMESTAMP,Ei as SORT_BY_TOKEN_USAGE,Eo as TOOL_LOADING_LABELS,Eh as URL_READ_NOTE_PREFIX,EU as URL_READ_PART_TYPE,u as VENDOR_GOOGLE_TTS_CHIRP3_HD,c as VENDOR_GOOGLE_TTS_NEURAL2,U as VENDOR_GOOGLE_TTS_WAVENET,d as VENDOR_IPROYAL_RESIDENTIAL,l as VENDOR_OPENAI_WEB_SEARCH,C as VENDOR_PERPLEXITY_SEARCH,h as VENDOR_SERPAPI};
1
+ export*from"./memory.js";export*from"./theme-types.js";let E="system",O="user",e="assistant",_="OpenAI",R="Anthropic",T="Google",S="Summary",t="Memory",A="Perplexity",a=_,I=[_,R,T],L="gpt-6.1-sol",i="gpt-6.1-terra",P="gpt-6-luna",s="claude-opus-5-5",D="claude-sonnet-5-5",N="claude-haiku-5-5",n="gemini-3.8-flash",o="gemini-3.5-flash-lite",r="sonar",M="sonar-pro",g="perplexity-search",C="openai/gpt-oss-20b:free",l="perplexity-search",u="openai-web-search",U="google-tts-chirp3-hd",c="google-tts-neural2",h="google-tts-wavenet",d="serpapi",p="iproyal-residential",G="claude-haiku-5-5",H="gpt-6-luna",m="gemini-3.5-flash-lite",V="gemini-3.8-flash",y="gpt-6.1-sol",B="gpt-6-luna",Y="gpt-5.6-luna",F="gemini-3.6-flash",W="text-embedding-3-small",X="gpt-image-2.6-sunburst",f=5,b=1e4,w=3e3,k={[L]:"GPT-6.1 Sol",[i]:"GPT-6.1 Terra",[P]:"GPT-6 Luna",[s]:"Claude Opus 5.5",[D]:"Claude Sonnet 5.5",[N]:"Claude Haiku 5.5",[n]:"Gemini 3.8 Flash",[o]:"Gemini 3.5 Flash-Lite",[r]:"Sonar",[M]:"Sonar Pro",[g]:"Perplexity Search",[X]:"GPT Image 2.6 Sunburst"},x=[L,i,P,s,D,N,o,n,X],K=[L,i,P,s,D,N,n,o],Z="fast",Q="balanced",v="thorough",z=[Z,Q,v],j={[Z]:"low",[Q]:"medium",[v]:"high"},q={[_]:Z,[R]:Q,[T]:Z},J=2,$="none",EE=["settings","shortcuts","memories","history","usage","about"],EO={[_]:[L,i,P],[R]:[s,N,D],[T]:[o,n],[A]:[r,M,g]},Ee={[_]:i,[R]:D,[T]:o},E_={[_]:[E,O,e],[R]:[O,e],[S]:[O,e],[t]:[O,e],[T]:[O,e],[A]:[O,e]},ER={[R]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-5","claude-haiku-4","claude-3"],[_]:["gpt-","o3","o4"],[T]:["gemini"],[A]:["sonar"]},ET="x-diggidy-chat-id",ES="SERVICE_PAUSED",Et="CREDITS_EXHAUSTED",EA="CREDITS_ON_HOLD",Ea=.01,EI=.2,EL="x-diggidy-chat-timestamp",Ei="complete",EP="timestamp",Es="tokenUsage",ED="Diggidy",EN="sassy:basic",En="sassy:plus",Eo="sassy:none",Er={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",NEWS_BRIEF:"getNewsBrief",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"}},EM={code_interpreter:"Running code...",web_search:"Searching the web...",[Er.TOOL.WEATHER]:"Checking the weather...",[Er.TOOL.POLLUTION]:"Fetching air pollution data...",[Er.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[Er.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[Er.TOOL.WEBSEARCH]:"Searching the web...",[Er.TOOL.GITREPOSITORY]:"Looking up repository...",[Er.TOOL.HOTELS]:"Searching for hotels...",[Er.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[Er.TOOL.NEWS_BRIEF]:"Reading today's news...",[Er.TOOL.PRODUCTS]:"Searching for products...",[Er.TOOL.REVIEW_TRUST]:"Checking reviews...",[Er.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[Er.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[Er.TOOL.GENERATE_IMAGE]:"Generating image...",[Er.TOOL.BARCODE]:"Looking up product...",[Er.TOOL.PRONUNCIATION]:"Generating pronunciation...",[Er.TOOL.HUMANIZE]:"Rewriting text...",[Er.TOOL.IMAGES]:"Searching for images...",[Er.TOOL.PAST_CHATS]:"Searching your past chats..."},Eg="Using tools...",EC=8e5,El=16384,Eu=4,EU=3,Ec=8388608,Eh="context-compression-summary",Ed="data-urlRead",Ep="[Note from the system: you read",EG="data-newsLinks";export{x as ALL_MODELS,I as ALL_PROVIDERS,K as ALL_REASONING_MODELS,ED as APPLICATION_NAME,ER as APPROXIMATE_MODELS_PER_PROVIDER,Er as CAPABILITIES,Ei as CHAT_COMPLETION_MARKER_KEY,EC as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,EU as CONTEXT_COMPRESSION_KEEP_IMAGES,Eu as CONTEXT_COMPRESSION_KEEP_RECENT,Ec as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,Eh as CONTEXT_COMPRESSION_SUMMARY_ID,Et as CREDITS_EXHAUSTED,EA as CREDITS_ON_HOLD,Ea as CREDIT_USD,Ee as DEFAULT_MODEL_PER_PROVIDER,a as DEFAULT_PROVIDER,q as DEFAULT_RESPONSE_SPEED,Eg as DEFAULT_TOOL_LOADING_LABEL,ET as DIGGIDY_CHAT_ID_HEADER,EL as DIGGIDY_CHAT_TIMESTAMP_HEADER,EI as LOW_CREDITS_SHARE,El as MAX_OUTPUT_TOKENS,f as MAX_SEARCH_QUERIES,EO as MODELS_PER_PROVIDER,N as MODEL_ANTHROPIC_LOW,D as MODEL_ANTHROPIC_MEDIUM,s as MODEL_ANTHROPIC_TOP,H as MODEL_CHAT_SUMMARY,C as MODEL_DEV,k as MODEL_DISPLAY_NAMES,W as MODEL_EMBEDDING_TEXT,X as MODEL_GENERATE_IMAGE,o as MODEL_GOOGLE_MEDIUM,n as MODEL_GOOGLE_TOP,y as MODEL_HUMANIZE_AUDIT,V as MODEL_HUMANIZE_REWRITE,G as MODEL_MEMORY_INFERENCE,B as MODEL_NUTRITION_SEARCH,P as MODEL_OPENAI_LOW,i as MODEL_OPENAI_MEDIUM,L as MODEL_OPENAI_TOP,g as MODEL_PERPLEXITY_SEARCH,Y as MODEL_REVIEW_TRUST_PANEL,F as MODEL_REVIEW_TRUST_PANEL_GOOGLE,m as MODEL_SEARCH_DECOMPOSER,r as MODEL_SONAR,M as MODEL_SONAR_PRO,EG as NEWS_LINKS_PART_TYPE,EN as PLAN_BASIC,Eo as PLAN_NONE,En as PLAN_PLUS,R as PROVIDER_ANTHROPIC,T as PROVIDER_GOOGLE,t as PROVIDER_MEMORY,_ as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,E_ as PROVIDER_ROLE_MAP,S as PROVIDER_SUMMARY,J as QUICK_ACCESS_MAX,$ as QUICK_ACCESS_NONE,EE as QUICK_ACCESS_PANELS,z as RESPONSE_SPEEDS,Q as RESPONSE_SPEED_BALANCED,Z as RESPONSE_SPEED_FAST,v as RESPONSE_SPEED_THOROUGH,j as RESPONSE_SPEED_TO_EFFORT,e as ROLE_ASSISTANT,E as ROLE_SYSTEM,O as ROLE_USER,w as SEARCH_DECOMPOSE_TIMEOUT_MS,b as SEARCH_QUERY_TIMEOUT_MS,ES as SERVICE_PAUSED,EP as SORT_BY_TIMESTAMP,Es as SORT_BY_TOKEN_USAGE,EM as TOOL_LOADING_LABELS,Ep as URL_READ_NOTE_PREFIX,Ed as URL_READ_PART_TYPE,U as VENDOR_GOOGLE_TTS_CHIRP3_HD,c as VENDOR_GOOGLE_TTS_NEURAL2,h as VENDOR_GOOGLE_TTS_WAVENET,p as VENDOR_IPROYAL_RESIDENTIAL,u as VENDOR_OPENAI_WEB_SEARCH,l as VENDOR_PERPLEXITY_SEARCH,d as VENDOR_SERPAPI};
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare enum ActionColor {
25
25
  * List of all models available TODAY. This is used by the client to display the
26
26
  * list of models.
27
27
  */
28
- 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.6-sunburst"];
28
+ export declare const ALL_MODELS: readonly ["gpt-6.1-sol", "gpt-6.1-terra", "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.6-sunburst"];
29
29
 
30
30
  export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
31
31
 
@@ -235,6 +235,17 @@ export declare const CREDITS_ON_HOLD = "CREDITS_ON_HOLD";
235
235
  */
236
236
  export declare type CSSVariables = Record<string, string>;
237
237
 
238
+ /**
239
+ * The model a provider serves when the user has picked none: the medium tier,
240
+ * not the first entry of the plan's list. That list stays in top-to-low order
241
+ * because the model picker shows it as is.
242
+ */
243
+ export declare const DEFAULT_MODEL_PER_PROVIDER: {
244
+ readonly OpenAI: "gpt-6.1-terra";
245
+ readonly Anthropic: "claude-sonnet-5-5";
246
+ readonly Google: "gemini-3.5-flash-lite";
247
+ };
248
+
238
249
  export declare const DEFAULT_PROVIDER = "OpenAI";
239
250
 
240
251
  /**
@@ -756,7 +767,9 @@ export declare const MODEL_MEMORY_INFERENCE = "claude-haiku-5-5";
756
767
  */
757
768
  export declare const MODEL_NUTRITION_SEARCH = "gpt-6-luna";
758
769
 
759
- export declare const MODEL_OPENAI_MEDIUM = "gpt-6-luna";
770
+ export declare const MODEL_OPENAI_LOW = "gpt-6-luna";
771
+
772
+ export declare const MODEL_OPENAI_MEDIUM = "gpt-6.1-terra";
760
773
 
761
774
  /**
762
775
  * List of available models TODAY.
@@ -865,7 +878,7 @@ export declare interface ModelProviderMatchOptions {
865
878
  *
866
879
  */
867
880
  export declare const MODELS_PER_PROVIDER: {
868
- readonly OpenAI: readonly ["gpt-6.1-sol", "gpt-6-luna"];
881
+ readonly OpenAI: readonly ["gpt-6.1-sol", "gpt-6.1-terra", "gpt-6-luna"];
869
882
  readonly Anthropic: readonly ["claude-opus-5-5", "claude-haiku-5-5", "claude-sonnet-5-5"];
870
883
  readonly Google: readonly ["gemini-3.5-flash-lite", "gemini-3.8-flash"];
871
884
  readonly Perplexity: readonly ["sonar", "sonar-pro", "perplexity-search"];
@@ -1040,6 +1053,21 @@ export declare function resolveQuickAccess(stored?: unknown): QuickAccessPanel[]
1040
1053
  */
1041
1054
  export declare function resolveResponseSpeed(stored?: Partial<Record<string, unknown>> | null): Record<RealProvider, ResponseSpeed>;
1042
1055
 
1056
+ /**
1057
+ * The model one provider serves: the saved pick where the plan allows it,
1058
+ * otherwise the provider's default. The server resolves the model to call with
1059
+ * it and the client pickers mark the selected model with it, so the two agree.
1060
+ *
1061
+ * @param providerModels - The models of ONE provider the plan allows, in plan
1062
+ * order.
1063
+ * @param savedModel - The model the user picked, if any.
1064
+ * @returns The saved model when the list holds it; otherwise that provider's
1065
+ * entry in DEFAULT_MODEL_PER_PROVIDER when the list holds it, otherwise the
1066
+ * first model of the list; undefined for an empty list.
1067
+ *
1068
+ */
1069
+ export declare const resolveServedModel: (providerModels: readonly string[], savedModel?: string | null) => string | undefined;
1070
+
1043
1071
  export declare const RESPONSE_SPEED_BALANCED = "balanced";
1044
1072
 
1045
1073
  /**
@@ -1048,7 +1076,7 @@ export declare const RESPONSE_SPEED_BALANCED = "balanced";
1048
1076
  * to the effort setting every provider names differently (OpenAI
1049
1077
  * reasoningEffort, Anthropic effort, Gemini thinkingLevel), all of which accept
1050
1078
  * low, medium and high on every model in ALL_REASONING_MODELS (probed
1051
- * 2026-10-04).
1079
+ * 2026-10-04; gpt-6.1-terra probed 2026-11-10).
1052
1080
  */
1053
1081
  export declare const RESPONSE_SPEED_FAST = "fast";
1054
1082
 
@@ -1 +1 @@
1
- import{ALL_MODELS as e,ALL_PROVIDERS as r,ALL_REASONING_MODELS as t,APPROXIMATE_MODELS_PER_PROVIDER as n,DEFAULT_RESPONSE_SPEED as s,MODELS_PER_PROVIDER as l,PROVIDER_ANTHROPIC as o,PROVIDER_GOOGLE as i,PROVIDER_OPENAI as u,QUICK_ACCESS_MAX as f,QUICK_ACCESS_PANELS as a,RESPONSE_SPEEDS as d}from"../constants/index.js";export*from"./cardFollowUp.js";export*from"./newChatRequest.js";export*from"./newsBrief.js";export*from"./newsLinkParts.js";export*from"./readUrlParts.js";export*from"./resetDay.js";let c=new Set([u,o,i]);function p(e){return"string"==typeof e&&c.has(e)}let h=/^auto \((.+)\)$/;function m(e){let r=e.match(h);return r?r[1]:e}let g=e=>{for(let[r,t]of Object.entries(n))if(t.some(r=>e.startsWith(r)))return r;return null},y=/image|embedding|tts|realtime|transcribe|audio/;function j(r,{matchUnknownByPrefix:t=!1}){for(let[e,t]of Object.entries(l))if(t.includes(r))return p(e)?e:null;if(!t||e.includes(r)||y.test(r))return null;let n=g(r);return p(n)?n:null}let v=(e,t={})=>{if(!e||0===e.length)return[];let n=new Set;for(let r of e){let e=j(r,t);e&&n.add(e)}return r.filter(e=>n.has(e))},w=(e,r={})=>{let t=new Map;if(!e||0===e.length)return t;for(let n of e){let e=j(n,r);e&&(t.has(e)||t.set(e,[]),t.get(e)?.push(n))}return t},P=(e,r={})=>{for(let t of w(e,r).values())if(t.length>1)return!0;return!1},x=(e,r)=>!!e&&!!r&&0!==r.length&&r.includes(e);function A(e,r,t){if(!r||Array.isArray(r)&&0===r.length)return!0;let n=e instanceof Set?e:e?new Set(e):null;return!!n&&0!==n.size&&("string"==typeof r?n.has(r):t?.any===!0?r.some(e=>n.has(e)):r.every(e=>n.has(e)))}function M(e){return t.includes(e)}function S(e){let r=r=>{let t=e?.[r];return d.includes(t)?t:s[r]};return{[u]:r(u),[o]:r(o),[i]:r(i)}}function b(e){let r=Array.isArray(e)?e:[e],t=[];for(let e of r)a.includes(e)&&!t.includes(e)&&t.push(e);return t.slice(0,f)}export{g as findProvider,w as getModelsGroupedByProvider,v as getProvidersFromModels,P as hasMultipleModelsPerProvider,A as isEntitled,x as isModelAllowedForPlan,p as isRealProvider,M as isReasoningModel,b as resolveQuickAccess,S as resolveResponseSpeed,m as stripAutoWrapper};
1
+ import{ALL_MODELS as e,ALL_PROVIDERS as r,ALL_REASONING_MODELS as t,APPROXIMATE_MODELS_PER_PROVIDER as n,DEFAULT_MODEL_PER_PROVIDER as l,DEFAULT_RESPONSE_SPEED as s,MODELS_PER_PROVIDER as o,PROVIDER_ANTHROPIC as i,PROVIDER_GOOGLE as u,PROVIDER_OPENAI as f,QUICK_ACCESS_MAX as a,QUICK_ACCESS_PANELS as d,RESPONSE_SPEEDS as c}from"../constants/index.js";export*from"./cardFollowUp.js";export*from"./newChatRequest.js";export*from"./newsBrief.js";export*from"./newsLinkParts.js";export*from"./readUrlParts.js";export*from"./resetDay.js";let p=new Set([f,i,u]);function h(e){return"string"==typeof e&&p.has(e)}let m=/^auto \((.+)\)$/;function g(e){let r=e.match(m);return r?r[1]:e}let v=e=>{for(let[r,t]of Object.entries(n))if(t.some(r=>e.startsWith(r)))return r;return null},j=/image|embedding|tts|realtime|transcribe|audio/;function y(r,{matchUnknownByPrefix:t=!1}){for(let[e,t]of Object.entries(o))if(t.includes(r))return h(e)?e:null;if(!t||e.includes(r)||j.test(r))return null;let n=v(r);return h(n)?n:null}let w=(e,t={})=>{if(!e||0===e.length)return[];let n=new Set;for(let r of e){let e=y(r,t);e&&n.add(e)}return r.filter(e=>n.has(e))},P=(e,r={})=>{let t=new Map;if(!e||0===e.length)return t;for(let n of e){let e=y(n,r);e&&(t.has(e)||t.set(e,[]),t.get(e)?.push(n))}return t},x=(e,r)=>{if(r&&e.includes(r))return r;let t=Object.values(l);return e.find(e=>t.includes(e))??e[0]},M=(e,r={})=>{for(let t of P(e,r).values())if(t.length>1)return!0;return!1},A=(e,r)=>!!e&&!!r&&0!==r.length&&r.includes(e);function S(e,r,t){if(!r||Array.isArray(r)&&0===r.length)return!0;let n=e instanceof Set?e:e?new Set(e):null;return!!n&&0!==n.size&&("string"==typeof r?n.has(r):t?.any===!0?r.some(e=>n.has(e)):r.every(e=>n.has(e)))}function b(e){return t.includes(e)}function R(e){let r=r=>{let t=e?.[r];return c.includes(t)?t:s[r]};return{[f]:r(f),[i]:r(i),[u]:r(u)}}function F(e){let r=Array.isArray(e)?e:[e],t=[];for(let e of r)d.includes(e)&&!t.includes(e)&&t.push(e);return t.slice(0,a)}export{v as findProvider,P as getModelsGroupedByProvider,w as getProvidersFromModels,M as hasMultipleModelsPerProvider,S as isEntitled,A as isModelAllowedForPlan,h as isRealProvider,b as isReasoningModel,F as resolveQuickAccess,R as resolveResponseSpeed,x as resolveServedModel,g as stripAutoWrapper};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.77.0",
3
+ "version": "4.78.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {