@versini/sassysaint-common 4.74.1 → 4.76.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",T="Google",S="Summary",t="Memory",A="Perplexity",a=_,I=[_,R,T],L="gpt-6.1-sol",i="gpt-6-luna",s="claude-opus-5-5",D="claude-sonnet-5-5",N="claude-haiku-5-5",P="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",B="gpt-6-luna",y="gpt-5.6-luna",Y="gemini-3.6-flash",F="text-embedding-3-small",W="gpt-image-2.5-sunburst",f=5,X=1e4,b=3e3,w={[L]:"GPT-6.1 Sol",[i]:"GPT-6 Luna",[s]:"Claude Opus 5.5",[D]:"Claude Sonnet 5.5",[N]:"Claude Haiku 5.5",[P]:"Gemini 3.8 Flash",[n]:"Gemini 3.5 Flash-Lite",[o]:"Sonar",[r]:"Sonar Pro",[M]:"Perplexity Search",[W]:"GPT Image 2.5 Sunburst"},k=[L,i,s,D,N,n,P,W],x=[L,i,s,D,N,P,n],K="fast",Z="balanced",v="thorough",z=[K,Z,v],Q={[K]:"low",[Z]:"medium",[v]:"high"},j={[_]:K,[R]:Z,[T]:K},q="none",J=["settings","shortcuts","memories","history","usage","about"],$={[_]:[L,i],[R]:[s,N,D],[T]:[n,P],[A]:[o,r,M]},EE={[_]:[E,O,e],[R]:[O,e],[S]:[O,e],[t]:[O,e],[T]:[O,e],[A]:[O,e]},EO={[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"]},Ee="x-diggidy-chat-id",E_="SERVICE_PAUSED",ER="CREDITS_EXHAUSTED",ET="CREDITS_ON_HOLD",ES=.01,Et=.2,EA="x-diggidy-chat-timestamp",Ea="complete",EI="timestamp",EL="tokenUsage",Ei="Diggidy",Es="sassy:basic",ED="sassy:plus",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"}},EP={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..."},En="Using tools...",Eo=8e5,Er=16384,EM=4,Eg=3,EC=8388608,El="context-compression-summary",Eu="data-urlRead",Ec="[Note from the system: you read",EU="data-newsLinks";export{k as ALL_MODELS,I as ALL_PROVIDERS,x as ALL_REASONING_MODELS,Ei as APPLICATION_NAME,EO as APPROXIMATE_MODELS_PER_PROVIDER,EN as CAPABILITIES,Ea as CHAT_COMPLETION_MARKER_KEY,Eo as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,Eg as CONTEXT_COMPRESSION_KEEP_IMAGES,EM as CONTEXT_COMPRESSION_KEEP_RECENT,EC as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,El as CONTEXT_COMPRESSION_SUMMARY_ID,ER as CREDITS_EXHAUSTED,ET as CREDITS_ON_HOLD,ES as CREDIT_USD,a as DEFAULT_PROVIDER,j as DEFAULT_RESPONSE_SPEED,En as DEFAULT_TOOL_LOADING_LABEL,Ee as DIGGIDY_CHAT_ID_HEADER,EA as DIGGIDY_CHAT_TIMESTAMP_HEADER,Et as LOW_CREDITS_SHARE,Er as MAX_OUTPUT_TOKENS,f as MAX_SEARCH_QUERIES,$ as MODELS_PER_PROVIDER,N as MODEL_ANTHROPIC_LOW,D 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,P as MODEL_GOOGLE_TOP,V as MODEL_HUMANIZE_AUDIT,m as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,B as MODEL_NUTRITION_SEARCH,i as MODEL_OPENAI_MEDIUM,L as MODEL_OPENAI_TOP,M as MODEL_PERPLEXITY_SEARCH,y 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,EU as NEWS_LINKS_PART_TYPE,Es as PLAN_BASIC,ED as PLAN_PLUS,R as PROVIDER_ANTHROPIC,T as PROVIDER_GOOGLE,t as PROVIDER_MEMORY,_ as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,EE as PROVIDER_ROLE_MAP,S as PROVIDER_SUMMARY,q as QUICK_ACCESS_NONE,J as QUICK_ACCESS_PANELS,z as RESPONSE_SPEEDS,Z as RESPONSE_SPEED_BALANCED,K as RESPONSE_SPEED_FAST,v as RESPONSE_SPEED_THOROUGH,Q as RESPONSE_SPEED_TO_EFFORT,e as ROLE_ASSISTANT,E as ROLE_SYSTEM,O as ROLE_USER,b as SEARCH_DECOMPOSE_TIMEOUT_MS,X as SEARCH_QUERY_TIMEOUT_MS,E_ as SERVICE_PAUSED,EI as SORT_BY_TIMESTAMP,EL as SORT_BY_TOKEN_USAGE,EP as TOOL_LOADING_LABELS,Ec 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",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",D="claude-sonnet-5-5",N="claude-haiku-5-5",P="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",B="gpt-6-luna",y="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",[D]:"Claude Sonnet 5.5",[N]:"Claude Haiku 5.5",[P]:"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,D,N,n,P,W],x=[L,i,s,D,N,P,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,N,D],[S]:[n,P],[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",ED="sassy:basic",EN="sassy:plus",EP={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"}},En={code_interpreter:"Running code...",web_search:"Searching the web...",[EP.TOOL.WEATHER]:"Checking the weather...",[EP.TOOL.POLLUTION]:"Fetching air pollution data...",[EP.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[EP.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[EP.TOOL.WEBSEARCH]:"Searching the web...",[EP.TOOL.GITREPOSITORY]:"Looking up repository...",[EP.TOOL.HOTELS]:"Searching for hotels...",[EP.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[EP.TOOL.NEWS_BRIEF]:"Reading today's news...",[EP.TOOL.PRODUCTS]:"Searching for products...",[EP.TOOL.REVIEW_TRUST]:"Checking reviews...",[EP.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[EP.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[EP.TOOL.GENERATE_IMAGE]:"Generating image...",[EP.TOOL.BARCODE]:"Looking up product...",[EP.TOOL.PRONUNCIATION]:"Generating pronunciation...",[EP.TOOL.HUMANIZE]:"Rewriting text...",[EP.TOOL.IMAGES]:"Searching for images...",[EP.TOOL.PAST_CHATS]:"Searching your past chats..."},Eo="Using tools...",Er=8e5,EM=16384,Eg=4,EC=3,El=8388608,Eu="context-compression-summary",Ec="data-urlRead",EU="[Note from the system: you read",Eh="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,EP as CAPABILITIES,EI as CHAT_COMPLETION_MARKER_KEY,Er as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,EC as CONTEXT_COMPRESSION_KEEP_IMAGES,Eg as CONTEXT_COMPRESSION_KEEP_RECENT,El as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,Eu 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,Eo as DEFAULT_TOOL_LOADING_LABEL,E_ as DIGGIDY_CHAT_ID_HEADER,Ea as DIGGIDY_CHAT_TIMESTAMP_HEADER,EA as LOW_CREDITS_SHARE,EM as MAX_OUTPUT_TOKENS,X as MAX_SEARCH_QUERIES,EE as MODELS_PER_PROVIDER,N as MODEL_ANTHROPIC_LOW,D 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,P as MODEL_GOOGLE_TOP,V as MODEL_HUMANIZE_AUDIT,m as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,B as MODEL_NUTRITION_SEARCH,i as MODEL_OPENAI_MEDIUM,L as MODEL_OPENAI_TOP,M as MODEL_PERPLEXITY_SEARCH,y 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,Eh as NEWS_LINKS_PART_TYPE,ED as PLAN_BASIC,EN 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,En as TOOL_LOADING_LABELS,EU as URL_READ_NOTE_PREFIX,Ec 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};
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.5-sunburst"];
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"];
29
29
 
30
30
  export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
31
31
 
@@ -217,8 +217,8 @@ export declare const CREDIT_USD = 0.01;
217
217
 
218
218
  /**
219
219
  * The `code` of the 402 the chat route answers when the user has no credits
220
- * left this month to start a turn with. The client shows a card for it rather
221
- * than a generic error.
220
+ * left, plan or top-up, to start a turn with. The client shows a card for it
221
+ * rather than a generic error.
222
222
  */
223
223
  export declare const CREDITS_EXHAUSTED = "CREDITS_EXHAUSTED";
224
224
 
@@ -682,12 +682,13 @@ export declare const MODEL_EMBEDDING_TEXT = "text-embedding-3-small";
682
682
 
683
683
  /**
684
684
  * The generateImage tool uses one OpenAI image model for every call, new images
685
- * and edits alike. gpt-image-2.5-flare used to make new images, and was dropped
686
- * after a side-by-side on 2026-10-11: on "A pelican riding a bicycle" it drew a
687
- * foot with no leg in 2 of 5 images, Sunburst in 0 of 5, at the same output
688
- * tokens and about 15 seconds slower.
685
+ * and edits alike: Sunburst, not Flare. gpt-image-2.5-flare used to make new
686
+ * images, and was dropped after a side-by-side on 2026-10-11: on "A pelican
687
+ * riding a bicycle" it drew a foot with no leg in 2 of 5 images, Sunburst in 0
688
+ * of 5, at the same output tokens and about 15 seconds slower. That comparison
689
+ * was run on 2.5; it has not been repeated on 2.6.
689
690
  */
690
- export declare const MODEL_GENERATE_IMAGE = "gpt-image-2.5-sunburst";
691
+ export declare const MODEL_GENERATE_IMAGE = "gpt-image-2.6-sunburst";
691
692
 
692
693
  export declare const MODEL_GOOGLE_MEDIUM = "gemini-3.5-flash-lite";
693
694
 
@@ -970,16 +971,18 @@ export declare const PROVIDER_ROLE_MAP: {
970
971
  export declare const PROVIDER_SUMMARY = "Summary";
971
972
 
972
973
  /**
973
- * Quick Access, a user preference (Settings > Header): the panel an icon next
974
- * to the header's gear opens in one tap, or none. In the iOS menu sheet's
975
- * order. Profile is left out: it is the first row of the menu the gear opens.
974
+ * Quick Access, a user preference (Settings > Header): up to QUICK_ACCESS_MAX
975
+ * panels, each an icon next to the header's gear that opens it in one tap, left
976
+ * to right in the stored order. The panels are in the iOS menu sheet's order.
977
+ * Profile is left out: it is the first row of the menu the gear opens.
978
+ * QUICK_ACCESS_NONE is the older single-panel field's "no icon".
976
979
  */
980
+ export declare const QUICK_ACCESS_MAX = 2;
981
+
977
982
  export declare const QUICK_ACCESS_NONE = "none";
978
983
 
979
984
  export declare const QUICK_ACCESS_PANELS: readonly ["settings", "shortcuts", "memories", "history", "usage", "about"];
980
985
 
981
- export declare type QuickAccess = QuickAccessPanel | typeof QUICK_ACCESS_NONE;
982
-
983
986
  export declare type QuickAccessPanel = (typeof QUICK_ACCESS_PANELS)[number];
984
987
 
985
988
  /**
@@ -1002,17 +1005,19 @@ export declare function readUrlParts(readUrls: unknown): {
1002
1005
  export declare type RealProvider = typeof PROVIDER_OPENAI | typeof PROVIDER_ANTHROPIC | typeof PROVIDER_GOOGLE;
1003
1006
 
1004
1007
  /**
1005
- * Resolve a stored Quick Access preference: one of QUICK_ACCESS_PANELS, or
1006
- * QUICK_ACCESS_NONE for anything else, whatever the DB or a client sent.
1008
+ * Resolve a stored Quick Access preference to the panels it shows, in order:
1009
+ * known panels only, each once, at most QUICK_ACCESS_MAX. A single panel name,
1010
+ * the older field's value, is a list of one; anything else is none.
1007
1011
  *
1008
1012
  * @example
1009
1013
  * ```ts
1010
- * resolveQuickAccess("history"); // Returns: "history"
1011
- * resolveQuickAccess("profile"); // Returns: "none"
1014
+ * resolveQuickAccess(["history", "usage"]); // Returns: ["history", "usage"]
1015
+ * resolveQuickAccess("history"); // Returns: ["history"]
1016
+ * resolveQuickAccess("none"); // Returns: []
1012
1017
  * ```
1013
1018
  *
1014
1019
  */
1015
- export declare function resolveQuickAccess(stored?: unknown): QuickAccess;
1020
+ export declare function resolveQuickAccess(stored?: unknown): QuickAccessPanel[];
1016
1021
 
1017
1022
  /**
1018
1023
  * Resolve a stored Response Speed preference into a complete per-provider
@@ -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 o,MODELS_PER_PROVIDER as s,PROVIDER_ANTHROPIC as l,PROVIDER_GOOGLE as i,PROVIDER_OPENAI as u,QUICK_ACCESS_NONE 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,l,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},j=/image|embedding|tts|realtime|transcribe|audio/;function v(r,{matchUnknownByPrefix:t=!1}){for(let[e,t]of Object.entries(s))if(t.includes(r))return p(e)?e:null;if(!t||e.includes(r)||j.test(r))return null;let n=g(r);return p(n)?n:null}let w=(e,t={})=>{if(!e||0===e.length)return[];let n=new Set;for(let r of e){let e=v(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=v(n,r);e&&(t.has(e)||t.set(e,[]),t.get(e)?.push(n))}return t},x=(e,r={})=>{for(let t of P(e,r).values())if(t.length>1)return!0;return!1},y=(e,r)=>!!e&&!!r&&0!==r.length&&r.includes(e);function M(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 A(e){return t.includes(e)}function S(e){let r=r=>{let t=e?.[r];return d.includes(t)?t:o[r]};return{[u]:r(u),[l]:r(l),[i]:r(i)}}function b(e){return a.includes(e)?e:f}export{g as findProvider,P as getModelsGroupedByProvider,w as getProvidersFromModels,x as hasMultipleModelsPerProvider,M as isEntitled,y as isModelAllowedForPlan,p as isRealProvider,A 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_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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.74.1",
3
+ "version": "4.76.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {