@versini/sassysaint-common 4.32.0 → 4.34.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
@@ -20,7 +20,7 @@ export declare enum ActionColor {
20
20
  * List of all models available TODAY. This is used by the client to display the
21
21
  * list of models.
22
22
  */
23
- export declare const ALL_MODELS: readonly ["gpt-5.4", "gpt-5-mini", "gpt-5-nano", "claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5", "gemini-3-flash-preview", "gemini-3.1-pro-preview", "gemini-3.1-flash-image-preview"];
23
+ export declare const ALL_MODELS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5", "gemini-3-flash-preview", "gemini-3.1-pro-preview", "gemini-3-pro-image-preview"];
24
24
 
25
25
  export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
26
26
 
@@ -126,6 +126,12 @@ export declare const DEFAULT_PROVIDER = "OpenAI";
126
126
  */
127
127
  export declare const DIGGIDY_CHAT_ID_HEADER = "x-diggidy-chat-id";
128
128
 
129
+ /**
130
+ * Header string for the client's last chat activity timestamp. Used by the
131
+ * server to detect stale chat reuse and log a structured metric.
132
+ */
133
+ export declare const DIGGIDY_CHAT_TIMESTAMP_HEADER = "x-diggidy-chat-timestamp";
134
+
129
135
  /**
130
136
  * Identifies the AI provider associated with a given model name by matching
131
137
  * against known model prefixes. This function provides backward compatibility
@@ -380,7 +386,7 @@ export declare const isModelAllowedForPlan: (selectedModel: string | undefined |
380
386
  */
381
387
  export declare function isReasoningModel(model: string): boolean;
382
388
 
383
- export declare const MODEL_CHAT_SUMMARY = "gpt-5-nano";
389
+ export declare const MODEL_CHAT_SUMMARY = "gpt-5.4-nano";
384
390
 
385
391
  export declare const MODEL_CLAUDE_HAIKU = "claude-haiku-4-5";
386
392
 
@@ -402,7 +408,7 @@ export declare const MODEL_GEMINI_FLASH = "gemini-3-flash-preview";
402
408
 
403
409
  export declare const MODEL_GEMINI_PRO = "gemini-3.1-pro-preview";
404
410
 
405
- export declare const MODEL_GENERATE_IMAGE = "gemini-3.1-flash-image-preview";
411
+ export declare const MODEL_GENERATE_IMAGE = "gemini-3-pro-image-preview";
406
412
 
407
413
  export declare const MODEL_GPT4_NANO = "gpt-4.1-nano";
408
414
 
@@ -411,11 +417,11 @@ export declare const MODEL_GPT4_NANO = "gpt-4.1-nano";
411
417
  */
412
418
  export declare const MODEL_GPT5 = "gpt-5.4";
413
419
 
414
- export declare const MODEL_GPT5_MINI = "gpt-5-mini";
420
+ export declare const MODEL_GPT5_MINI = "gpt-5.4-mini";
415
421
 
416
- export declare const MODEL_GPT5_NANO = "gpt-5-nano";
422
+ export declare const MODEL_GPT5_NANO = "gpt-5.4-nano";
417
423
 
418
- export declare const MODEL_MEMORY_INFERENCE = "gpt-5-nano";
424
+ export declare const MODEL_MEMORY_INFERENCE = "gpt-5.4-nano";
419
425
 
420
426
  export declare const MODEL_SONAR = "sonar";
421
427
 
@@ -427,7 +433,7 @@ export declare const MODEL_TEACHER = "mistral-large-latest";
427
433
  * List of models available according to the providers.
428
434
  */
429
435
  export declare const MODELS_PER_PROVIDER: {
430
- readonly OpenAI: readonly ["gpt-4.1-nano", "gpt-5.4", "gpt-5-mini", "gpt-5-nano"];
436
+ readonly OpenAI: readonly ["gpt-4.1-nano", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
431
437
  readonly Anthropic: readonly ["claude-opus-4-6", "claude-haiku-4-5", "claude-sonnet-4-6"];
432
438
  readonly Google: readonly ["gemini-3-flash-preview", "gemini-3.1-pro-preview"];
433
439
  readonly Perplexity: readonly ["sonar", "sonar-pro"];
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e="standard";var t,E=((t={})[t.NewChat=0]="NewChat",t[t.Prompts=1]="Prompts",t[t.Attachment=2]="Attachment",t[t.PrivateChat=3]="PrivateChat",t[t.Reasoning=4]="Reasoning",t[t.Send=5]="Send",t[t.Header=6]="Header",t[t.Provider=7]="Provider",t[t.Logo=8]="Logo",t[t.Placeholder=9]="Placeholder",t[t.Footer=10]="Footer",t);let r="system",a="user",n="assistant",o="OpenAI",i="Anthropic",s="Google",O="Summary",_="Memory",R="Perplexity",l="Mistral",A=o,M=[o,i,s],P="gpt-5.4",T="gpt-5-mini",I="gpt-5-nano",S="gpt-4.1-nano",D="claude-opus-4-6",d="claude-sonnet-4-6",L="claude-haiku-4-5",N="gemini-3-flash-preview",g="gemini-3.1-pro-preview",u="sonar",c="sonar-pro",h="openai/gpt-oss-20b:free",C="mistral-large-latest",m="gpt-5-nano",p="gpt-5-nano",G="text-embedding-3-small",f="gemini-3.1-flash-image-preview",H={[P]:"GPT-5.4",[T]:"GPT-5 Mini",[I]:"GPT-5 Nano",[S]:"GPT-4.1 Nano",[D]:"Claude Opus 4.6",[d]:"Claude Sonnet 4.6",[L]:"Claude Haiku 4.5",[N]:"Gemini 3 Flash",[g]:"Gemini 3.1 Pro",[u]:"Sonar",[c]:"Sonar Pro",[f]:"Nano Banana 3.1 Flash",[C]:"Mistral Large"},U=[P,T,I,D,d,L,N,g,f],y=[P,T,I,D,d,g],v={[o]:[S,P,T,I],[i]:[D,L,d],[s]:[N,g],[R]:[u,c]},B={[o]:[r,a,n],[i]:[a,n],[O]:[a,n],[_]:[a,n],[s]:[a,n],[R]:[a,n],[l]:[a,n]},F={[i]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[o]:["gpt-","o3","o4"],[s]:["gemini"],[R]:["sonar"],[l]:["mistral"]},V="x-diggidy-chat-id",Y="timestamp",b="tokenUsage",w="Diggidy",X="sassy:basic",k="sassy:plus",x="sassy:advanced",W={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"}},j=5e4,z=4,K="context-compression-summary",Z=e=>{for(let[t,E]of Object.entries(F))if(E.some(t=>e.startsWith(t)))return t;return null},q=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,r]of Object.entries(v))r.includes(E)&&(e===o||e===i||e===s)&&t.add(e);return M.filter(e=>t.has(e))},J=e=>{let t=new Map;if(!e||0===e.length)return t;for(let E of e)for(let[e,r]of Object.entries(v))if(r.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},Q=e=>{for(let t of J(e).values())if(t.length>1)return!0;return!1},$=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function ee(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 et(e){return y.includes(e)}var eE="subtle";export{U as ALL_MODELS,M as ALL_PROVIDERS,y as ALL_REASONING_MODELS,w as APPLICATION_NAME,F as APPROXIMATE_MODELS_PER_PROVIDER,W as CAPABILITIES,z as CONTEXT_COMPRESSION_KEEP_RECENT,K as CONTEXT_COMPRESSION_SUMMARY_ID,j as CONTEXT_COMPRESSION_THRESHOLD,A as DEFAULT_PROVIDER,V as DIGGIDY_CHAT_ID_HEADER,v as MODELS_PER_PROVIDER,p as MODEL_CHAT_SUMMARY,L as MODEL_CLAUDE_HAIKU,D as MODEL_CLAUDE_OPUS,d as MODEL_CLAUDE_SONNET,h as MODEL_DEV,H as MODEL_DISPLAY_NAMES,G as MODEL_EMBEDDING_TEXT,N as MODEL_GEMINI_FLASH,g as MODEL_GEMINI_PRO,f as MODEL_GENERATE_IMAGE,S as MODEL_GPT4_NANO,P as MODEL_GPT5,T as MODEL_GPT5_MINI,I as MODEL_GPT5_NANO,m as MODEL_MEMORY_INFERENCE,u as MODEL_SONAR,c as MODEL_SONAR_PRO,C as MODEL_TEACHER,X as PLAN_BASIC,k as PLAN_PLUS,x as PLAN_PREMIUM,i as PROVIDER_ANTHROPIC,s as PROVIDER_GOOGLE,_ as PROVIDER_MEMORY,l as PROVIDER_MISTRAL,o as PROVIDER_OPENAI,R as PROVIDER_PERPLEXITY,B as PROVIDER_ROLE_MAP,O as PROVIDER_SUMMARY,n as ROLE_ASSISTANT,r as ROLE_SYSTEM,a as ROLE_USER,Y as SORT_BY_TIMESTAMP,b as SORT_BY_TOKEN_USAGE,e as THEME_STANDARD,Z as findProvider,J as getModelsGroupedByProvider,q as getProvidersFromModels,Q as hasMultipleModelsPerProvider,ee as isEntitled,$ as isModelAllowedForPlan,et as isReasoningModel,eE as THEME_SUBTLE,E as ActionColor};
1
+ let e="standard";var t,E=((t={})[t.NewChat=0]="NewChat",t[t.Prompts=1]="Prompts",t[t.Attachment=2]="Attachment",t[t.PrivateChat=3]="PrivateChat",t[t.Reasoning=4]="Reasoning",t[t.Send=5]="Send",t[t.Header=6]="Header",t[t.Provider=7]="Provider",t[t.Logo=8]="Logo",t[t.Placeholder=9]="Placeholder",t[t.Footer=10]="Footer",t);let r="system",a="user",n="assistant",o="OpenAI",i="Anthropic",s="Google",O="Summary",_="Memory",R="Perplexity",A="Mistral",l=o,M=[o,i,s],P="gpt-5.4",T="gpt-5.4-mini",I="gpt-5.4-nano",S="gpt-4.1-nano",D="claude-opus-4-6",d="claude-sonnet-4-6",L="claude-haiku-4-5",N="gemini-3-flash-preview",g="gemini-3.1-pro-preview",u="sonar",c="sonar-pro",C="openai/gpt-oss-20b:free",h="mistral-large-latest",m="gpt-5.4-nano",p="gpt-5.4-nano",G="text-embedding-3-small",H="gemini-3-pro-image-preview",f={[P]:"GPT-5.4",[T]:"GPT-5.4 Mini",[I]:"GPT-5.4 Nano",[S]:"GPT-4.1 Nano",[D]:"Claude Opus 4.6",[d]:"Claude Sonnet 4.6",[L]:"Claude Haiku 4.5",[g]:"Gemini 3.1 Pro",[N]:"Gemini 3 Flash",[u]:"Sonar",[c]:"Sonar Pro",[H]:"Nano Banana 3 Pro",[h]:"Mistral Large"},U=[P,T,I,D,d,L,N,g,H],y=[P,T,I,D,d,g],v={[o]:[S,P,T,I],[i]:[D,L,d],[s]:[N,g],[R]:[u,c]},B={[o]:[r,a,n],[i]:[a,n],[O]:[a,n],[_]:[a,n],[s]:[a,n],[R]:[a,n],[A]:[a,n]},V={[i]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[o]:["gpt-","o3","o4"],[s]:["gemini"],[R]:["sonar"],[A]:["mistral"]},Y="x-diggidy-chat-id",F="x-diggidy-chat-timestamp",b="timestamp",w="tokenUsage",x="Diggidy",X="sassy:basic",k="sassy:plus",W="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"}},z=5e4,K=4,Z="context-compression-summary",q=e=>{for(let[t,E]of Object.entries(V))if(E.some(t=>e.startsWith(t)))return t;return null},J=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,r]of Object.entries(v))r.includes(E)&&(e===o||e===i||e===s)&&t.add(e);return M.filter(e=>t.has(e))},Q=e=>{let t=new Map;if(!e||0===e.length)return t;for(let E of e)for(let[e,r]of Object.entries(v))if(r.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},$=e=>{for(let t of Q(e).values())if(t.length>1)return!0;return!1},ee=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function et(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 eE(e){return y.includes(e)}var er="subtle";export{U as ALL_MODELS,M as ALL_PROVIDERS,y as ALL_REASONING_MODELS,x as APPLICATION_NAME,V as APPROXIMATE_MODELS_PER_PROVIDER,j as CAPABILITIES,K as CONTEXT_COMPRESSION_KEEP_RECENT,Z as CONTEXT_COMPRESSION_SUMMARY_ID,z as CONTEXT_COMPRESSION_THRESHOLD,l as DEFAULT_PROVIDER,Y as DIGGIDY_CHAT_ID_HEADER,F as DIGGIDY_CHAT_TIMESTAMP_HEADER,v as MODELS_PER_PROVIDER,p as MODEL_CHAT_SUMMARY,L as MODEL_CLAUDE_HAIKU,D as MODEL_CLAUDE_OPUS,d as MODEL_CLAUDE_SONNET,C as MODEL_DEV,f as MODEL_DISPLAY_NAMES,G as MODEL_EMBEDDING_TEXT,N as MODEL_GEMINI_FLASH,g as MODEL_GEMINI_PRO,H as MODEL_GENERATE_IMAGE,S as MODEL_GPT4_NANO,P as MODEL_GPT5,T as MODEL_GPT5_MINI,I as MODEL_GPT5_NANO,m as MODEL_MEMORY_INFERENCE,u as MODEL_SONAR,c as MODEL_SONAR_PRO,h as MODEL_TEACHER,X as PLAN_BASIC,k as PLAN_PLUS,W as PLAN_PREMIUM,i as PROVIDER_ANTHROPIC,s as PROVIDER_GOOGLE,_ as PROVIDER_MEMORY,A as PROVIDER_MISTRAL,o as PROVIDER_OPENAI,R as PROVIDER_PERPLEXITY,B as PROVIDER_ROLE_MAP,O as PROVIDER_SUMMARY,n as ROLE_ASSISTANT,r as ROLE_SYSTEM,a as ROLE_USER,b as SORT_BY_TIMESTAMP,w as SORT_BY_TOKEN_USAGE,e as THEME_STANDARD,q as findProvider,Q as getModelsGroupedByProvider,J as getProvidersFromModels,$ as hasMultipleModelsPerProvider,et as isEntitled,ee as isModelAllowedForPlan,eE as isReasoningModel,er as THEME_SUBTLE,E as ActionColor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.32.0",
3
+ "version": "4.34.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": "9971cbb606ab9e059726e733e68f894670059a37"
35
+ "gitHead": "4165d84b0864d5c69e0571fbfe8f452ab8c703b4"
36
36
  }