@versini/sassysaint-common 4.37.1 → 4.38.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
@@ -371,6 +371,15 @@ declare interface IsEntitledOptions {
371
371
  */
372
372
  export declare const isModelAllowedForPlan: (selectedModel: string | undefined | null, allowedModels: string[]) => boolean;
373
373
 
374
+ /**
375
+ * Runtime guard: true only for a real, SDK-instantiable provider literal.
376
+ * Returns false for PROVIDER_AUTO, undefined, null, and anything else. Shared
377
+ * by the Auto-router resolver (server) and the provider picker (client) so both
378
+ * agree on what counts as a real, selectable provider — and so neither lets the
379
+ * "Auto" pseudo-value leak into enum-keyed lookups.
380
+ */
381
+ export declare function isRealProvider(value: unknown): value is RealProvider;
382
+
374
383
  /**
375
384
  * Checks if a given model is classified as a reasoning-capable model. This
376
385
  * function is used to determine if advanced reasoning features should be
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var e,t=((e={})[e.NewChat=0]="NewChat",e[e.Prompts=1]="Prompts",e[e.Attachment=2]="Attachment",e[e.PrivateChat=3]="PrivateChat",e[e.Reasoning=4]="Reasoning",e[e.Send=5]="Send",e[e.Header=6]="Header",e[e.Provider=7]="Provider",e[e.Logo=8]="Logo",e[e.Placeholder=9]="Placeholder",e[e.Footer=10]="Footer",e);let E="system",O="user",n="assistant",r="OpenAI",i="Anthropic",a="Google",o="Summary",_="Memory",R="Perplexity",T="Mistral",A="Auto",s=r,L=[r,i,a],I="gpt-5.4",M="gpt-5.4-mini",P="gpt-5.4-nano",S="gpt-4.1-nano",l="claude-opus-4-6",g="claude-sonnet-4-6",N="claude-haiku-4-5",D="gemini-3-flash-preview",d="gemini-3.1-pro-preview",u="sonar",c="sonar-pro",C="openai/gpt-oss-20b:free",h="mistral-large-latest",p="gpt-5.4-nano",G="gpt-5.4-nano",U="gpt-5.4-mini",m="text-embedding-3-small",H="gemini-3-pro-image-preview",f=P,y=N,B=D,F=5,v=1e4,Y={[I]:"GPT-5.4",[M]:"GPT-5.4 Mini",[P]:"GPT-5.4 Nano",[S]:"GPT-4.1 Nano",[l]:"Claude Opus 4.6",[g]:"Claude Sonnet 4.6",[N]:"Claude Haiku 4.5",[d]:"Gemini 3.1 Pro",[D]:"Gemini 3 Flash",[u]:"Sonar",[c]:"Sonar Pro",[H]:"Nano Banana 3 Pro",[h]:"Mistral Large"},V=[I,M,P,l,g,N,D,d,H],w=[I,M,P,l,g,d],b={[r]:[S,I,M,P],[i]:[l,N,g],[a]:[D,d],[R]:[u,c]},k={[r]:[E,O,n],[i]:[O,n],[o]:[O,n],[_]:[O,n],[a]:[O,n],[R]:[O,n],[T]:[O,n]},X={[i]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[r]:["gpt-","o3","o4"],[a]:["gemini"],[R]:["sonar"],[T]:["mistral"]},x="x-diggidy-chat-id",W="x-diggidy-chat-timestamp",z="timestamp",K="tokenUsage",Z="Diggidy",j="sassy:basic",Q="sassy:plus",q="sassy:advanced",J={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",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings"},ADDON:{ATTACHMENTS:"addon:attachments",REASONING:"addon:reasoning",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},$={code_interpreter:"Running code...",[J.TOOL.WEATHER]:"Checking the weather...",[J.TOOL.POLLUTION]:"Fetching air pollution data...",[J.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[J.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[J.TOOL.WEBSEARCH]:"Searching the web...",[J.TOOL.GITREPOSITORY]:"Looking up repository...",[J.TOOL.HOTELS]:"Searching for hotels...",[J.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[J.TOOL.GENERATE_IMAGE]:"Generating image...",[J.TOOL.BARCODE]:"Looking up product...",[J.TOOL.PRONUNCIATION]:"Generating pronunciation...",[J.TOOL.HUMANIZE]:"Rewriting text...",[J.TOOL.IMAGES]:"Searching for images..."},ee="Using tools...",et=5e4,eE=16384,eO=4,en="context-compression-summary",er=e=>{for(let[t,E]of Object.entries(X))if(E.some(t=>e.startsWith(t)))return t;return null},ei=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,O]of Object.entries(b))O.includes(E)&&(e===r||e===i||e===a)&&t.add(e);return L.filter(e=>t.has(e))},ea=e=>{let t=new Map;if(!e||0===e.length)return t;for(let E of e)for(let[e,O]of Object.entries(b))if(O.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},eo=e=>{for(let t of ea(e).values())if(t.length>1)return!0;return!1},e_=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function eR(e,t,E){if(!t||Array.isArray(t)&&0===t.length)return!0;let O=e instanceof Set?e:e?new Set(e):null;return!!O&&0!==O.size&&("string"==typeof t?O.has(t):E?.any===!0?t.some(e=>O.has(e)):t.every(e=>O.has(e)))}function eT(e){return w.includes(e)}export{V as ALL_MODELS,L as ALL_PROVIDERS,w as ALL_REASONING_MODELS,Z as APPLICATION_NAME,X as APPROXIMATE_MODELS_PER_PROVIDER,J as CAPABILITIES,eO as CONTEXT_COMPRESSION_KEEP_RECENT,en as CONTEXT_COMPRESSION_SUMMARY_ID,et as CONTEXT_COMPRESSION_THRESHOLD,s as DEFAULT_PROVIDER,ee as DEFAULT_TOOL_LOADING_LABEL,x as DIGGIDY_CHAT_ID_HEADER,W as DIGGIDY_CHAT_TIMESTAMP_HEADER,eE as MAX_OUTPUT_TOKENS,F as MAX_SEARCH_QUERIES,b as MODELS_PER_PROVIDER,y as MODEL_AUTO_ROUTER_ANTHROPIC,B as MODEL_AUTO_ROUTER_GOOGLE,f as MODEL_AUTO_ROUTER_OPENAI,G as MODEL_CHAT_SUMMARY,N as MODEL_CLAUDE_HAIKU,l as MODEL_CLAUDE_OPUS,g as MODEL_CLAUDE_SONNET,C as MODEL_DEV,Y as MODEL_DISPLAY_NAMES,m as MODEL_EMBEDDING_TEXT,D as MODEL_GEMINI_FLASH,d as MODEL_GEMINI_PRO,H as MODEL_GENERATE_IMAGE,S as MODEL_GPT4_NANO,I as MODEL_GPT5,M as MODEL_GPT5_MINI,P as MODEL_GPT5_NANO,p as MODEL_MEMORY_INFERENCE,U as MODEL_SEARCH_DECOMPOSER,u as MODEL_SONAR,c as MODEL_SONAR_PRO,h as MODEL_TEACHER,j as PLAN_BASIC,Q as PLAN_PLUS,q as PLAN_PREMIUM,i as PROVIDER_ANTHROPIC,A as PROVIDER_AUTO,a as PROVIDER_GOOGLE,_ as PROVIDER_MEMORY,T as PROVIDER_MISTRAL,r as PROVIDER_OPENAI,R as PROVIDER_PERPLEXITY,k as PROVIDER_ROLE_MAP,o as PROVIDER_SUMMARY,n as ROLE_ASSISTANT,E as ROLE_SYSTEM,O as ROLE_USER,v as SEARCH_QUERY_TIMEOUT_MS,z as SORT_BY_TIMESTAMP,K as SORT_BY_TOKEN_USAGE,$ as TOOL_LOADING_LABELS,er as findProvider,ea as getModelsGroupedByProvider,ei as getProvidersFromModels,eo as hasMultipleModelsPerProvider,eR as isEntitled,e_ as isModelAllowedForPlan,eT as isReasoningModel,t as ActionColor};
1
+ var e,E=((e={})[e.NewChat=0]="NewChat",e[e.Prompts=1]="Prompts",e[e.Attachment=2]="Attachment",e[e.PrivateChat=3]="PrivateChat",e[e.Reasoning=4]="Reasoning",e[e.Send=5]="Send",e[e.Header=6]="Header",e[e.Provider=7]="Provider",e[e.Logo=8]="Logo",e[e.Placeholder=9]="Placeholder",e[e.Footer=10]="Footer",e);let O="user",t="assistant",r="OpenAI",n="Anthropic",a="Google",_="Summary",o="Perplexity",i="Mistral",R=[r,n,a],s="gpt-5.4",T="gpt-5.4-mini",A="gpt-5.4-nano",I="gpt-4.1-nano",L="claude-opus-4-6",S="claude-sonnet-4-6",M="claude-haiku-4-5",P="gemini-3-flash-preview",l="gemini-3.1-pro-preview",N="sonar",g="sonar-pro",D="openai/gpt-oss-20b:free",c="mistral-large-latest",d="gpt-5.4-nano",u="gpt-5.4-nano",C="gpt-5.4-mini",h="text-embedding-3-small",p="gemini-3-pro-image-preview",U=A,G=M,m=P,H={[s]:"GPT-5.4",[T]:"GPT-5.4 Mini",[A]:"GPT-5.4 Nano",[I]:"GPT-4.1 Nano",[L]:"Claude Opus 4.6",[S]:"Claude Sonnet 4.6",[M]:"Claude Haiku 4.5",[l]:"Gemini 3.1 Pro",[P]:"Gemini 3 Flash",[N]:"Sonar",[g]:"Sonar Pro",[p]:"Nano Banana 3 Pro",[c]:"Mistral Large"},f=[s,T,A,L,S,M,P,l,p],y=[s,T,A,L,S,l],V={[r]:[I,s,T,A],[n]:[L,M,S],[a]:[P,l],[o]:[N,g]},B={[r]:["system",O,t],[n]:[O,t],[_]:[O,t],Memory:[O,t],[a]:[O,t],[o]:[O,t],[i]:[O,t]},Y={[n]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[r]:["gpt-","o3","o4"],[a]:["gemini"],[o]:["sonar"],[i]:["mistral"]},v="x-diggidy-chat-id",F="x-diggidy-chat-timestamp",w="timestamp",b="tokenUsage",X="Diggidy",k="sassy:basic",x="sassy:plus",W="sassy:advanced",K={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",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings"},ADDON:{ATTACHMENTS:"addon:attachments",REASONING:"addon:reasoning",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},z={code_interpreter:"Running code...",web_search:"Searching the web...",[K.TOOL.WEATHER]:"Checking the weather...",[K.TOOL.POLLUTION]:"Fetching air pollution data...",[K.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[K.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[K.TOOL.WEBSEARCH]:"Searching the web...",[K.TOOL.GITREPOSITORY]:"Looking up repository...",[K.TOOL.HOTELS]:"Searching for hotels...",[K.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[K.TOOL.GENERATE_IMAGE]:"Generating image...",[K.TOOL.BARCODE]:"Looking up product...",[K.TOOL.PRONUNCIATION]:"Generating pronunciation...",[K.TOOL.HUMANIZE]:"Rewriting text...",[K.TOOL.IMAGES]:"Searching for images..."},Q="Using tools...",Z="context-compression-summary",j=new Set(["OpenAI",n,"Google",i]);function q(e){return"string"==typeof e&&j.has(e)}let J=e=>{for(let[E,O]of Object.entries(Y))if(O.some(E=>e.startsWith(E)))return E;return null},$=e=>{if(!e||0===e.length)return[];let E=new Set;for(let O of e)for(let[e,t]of Object.entries(V))t.includes(O)&&("OpenAI"===e||e===n||"Google"===e)&&E.add(e);return R.filter(e=>E.has(e))},ee=e=>{let E=new Map;if(!e||0===e.length)return E;for(let O of e)for(let[e,t]of Object.entries(V))if(t.includes(O)){E.has(e)||E.set(e,[]),E.get(e)?.push(O);break}return E},eE=e=>{for(let E of ee(e).values())if(E.length>1)return!0;return!1},eO=(e,E)=>!!e&&!!E&&0!==E.length&&E.includes(e);function et(e,E,O){if(!E||Array.isArray(E)&&0===E.length)return!0;let t=e instanceof Set?e:e?new Set(e):null;return!!t&&0!==t.size&&("string"==typeof E?t.has(E):O?.any===!0?E.some(e=>t.has(e)):E.every(e=>t.has(e)))}function er(e){return y.includes(e)}var en=4,ea=5e4,e_="OpenAI",eo=16384,ei=5,eR="sonar",es="Auto",eT="Google",eA="Memory",eI="OpenAI",eL="system",eS="user",eM=1e4;export{f as ALL_MODELS,R as ALL_PROVIDERS,y as ALL_REASONING_MODELS,X as APPLICATION_NAME,Y as APPROXIMATE_MODELS_PER_PROVIDER,K as CAPABILITIES,Z as CONTEXT_COMPRESSION_SUMMARY_ID,Q as DEFAULT_TOOL_LOADING_LABEL,v as DIGGIDY_CHAT_ID_HEADER,F as DIGGIDY_CHAT_TIMESTAMP_HEADER,V as MODELS_PER_PROVIDER,G as MODEL_AUTO_ROUTER_ANTHROPIC,m as MODEL_AUTO_ROUTER_GOOGLE,U as MODEL_AUTO_ROUTER_OPENAI,u as MODEL_CHAT_SUMMARY,M as MODEL_CLAUDE_HAIKU,L as MODEL_CLAUDE_OPUS,S as MODEL_CLAUDE_SONNET,D as MODEL_DEV,H as MODEL_DISPLAY_NAMES,h as MODEL_EMBEDDING_TEXT,P as MODEL_GEMINI_FLASH,l as MODEL_GEMINI_PRO,p as MODEL_GENERATE_IMAGE,I as MODEL_GPT4_NANO,s as MODEL_GPT5,T as MODEL_GPT5_MINI,A as MODEL_GPT5_NANO,d as MODEL_MEMORY_INFERENCE,C as MODEL_SEARCH_DECOMPOSER,g as MODEL_SONAR_PRO,c as MODEL_TEACHER,k as PLAN_BASIC,x as PLAN_PLUS,W as PLAN_PREMIUM,n as PROVIDER_ANTHROPIC,i as PROVIDER_MISTRAL,o as PROVIDER_PERPLEXITY,B as PROVIDER_ROLE_MAP,_ as PROVIDER_SUMMARY,t as ROLE_ASSISTANT,w as SORT_BY_TIMESTAMP,b as SORT_BY_TOKEN_USAGE,z as TOOL_LOADING_LABELS,J as findProvider,ee as getModelsGroupedByProvider,$ as getProvidersFromModels,eE as hasMultipleModelsPerProvider,et as isEntitled,eO as isModelAllowedForPlan,q as isRealProvider,er as isReasoningModel,en as CONTEXT_COMPRESSION_KEEP_RECENT,ea as CONTEXT_COMPRESSION_THRESHOLD,e_ as DEFAULT_PROVIDER,eo as MAX_OUTPUT_TOKENS,ei as MAX_SEARCH_QUERIES,eR as MODEL_SONAR,es as PROVIDER_AUTO,eT as PROVIDER_GOOGLE,eA as PROVIDER_MEMORY,eI as PROVIDER_OPENAI,eL as ROLE_SYSTEM,eS as ROLE_USER,eM as SEARCH_QUERY_TIMEOUT_MS,E as ActionColor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.37.1",
3
+ "version": "4.38.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {
@@ -32,5 +32,5 @@
32
32
  "test:watch": "vitest",
33
33
  "watch": "npm-run-all dev"
34
34
  },
35
- "gitHead": "4f643ba3ba9737f2b38a3f2f198e0fd29c59f5eb"
35
+ "gitHead": "16ea50569b2ac682d9341af446f5029dd3cdeb3b"
36
36
  }