@versini/sassysaint-common 4.25.0 → 4.26.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.2", "gpt-5-mini", "gpt-5-nano", "claude-haiku-4-5", "claude-sonnet-4-5", "gemini-3-flash-preview", "gemini-3-pro-preview", "gemini-3-pro-image-preview"];
23
+ export declare const ALL_MODELS: readonly ["gpt-5.2", "gpt-5-mini", "gpt-5-nano", "claude-haiku-4-5", "claude-sonnet-4-6", "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
 
@@ -90,6 +90,25 @@ export declare type CapabilityInput = string | readonly string[];
90
90
  */
91
91
  export declare type ColorMap = Partial<Record<ActionColor, string>>;
92
92
 
93
+ /**
94
+ * Number of recent messages to keep intact during compression (two
95
+ * user-assistant exchanges). Ensures the model has enough immediate
96
+ * context to continue the conversation coherently.
97
+ */
98
+ export declare const CONTEXT_COMPRESSION_KEEP_RECENT = 4;
99
+
100
+ /**
101
+ * Stable ID assigned to the summary message produced by context
102
+ * compression. Used to identify (and hide) the summary in the UI.
103
+ */
104
+ export declare const CONTEXT_COMPRESSION_SUMMARY_ID = "context-compression-summary";
105
+
106
+ /**
107
+ * Context compression triggers when accumulated session tokens exceed this
108
+ * threshold. Keeps costs predictable and mitigates context rot.
109
+ */
110
+ export declare const CONTEXT_COMPRESSION_THRESHOLD = 50000;
111
+
93
112
  /**
94
113
  * CSS variables that can be dynamically applied to document.documentElement.
95
114
  * Variable names must include the -- prefix (e.g., "--av-focus-light").
@@ -362,7 +381,7 @@ export declare const MODEL_CHAT_SUMMARY = "gpt-5-nano";
362
381
 
363
382
  export declare const MODEL_CLAUDE_HAIKU = "claude-haiku-4-5";
364
383
 
365
- export declare const MODEL_CLAUDE_SONNET = "claude-sonnet-4-5";
384
+ export declare const MODEL_CLAUDE_SONNET = "claude-sonnet-4-6";
366
385
 
367
386
  export declare const MODEL_DEV = "openai/gpt-oss-20b:free";
368
387
 
@@ -376,7 +395,7 @@ export declare const MODEL_EMBEDDING_TEXT = "text-embedding-3-small";
376
395
 
377
396
  export declare const MODEL_GEMINI_FLASH = "gemini-3-flash-preview";
378
397
 
379
- export declare const MODEL_GEMINI_PRO = "gemini-3-pro-preview";
398
+ export declare const MODEL_GEMINI_PRO = "gemini-3.1-pro-preview";
380
399
 
381
400
  export declare const MODEL_GENERATE_IMAGE = "gemini-3-pro-image-preview";
382
401
 
@@ -402,8 +421,8 @@ export declare const MODEL_SONAR_PRO = "sonar-pro";
402
421
  */
403
422
  export declare const MODELS_PER_PROVIDER: {
404
423
  readonly OpenAI: readonly ["gpt-4.1-nano", "gpt-5.2", "gpt-5-mini", "gpt-5-nano"];
405
- readonly Anthropic: readonly ["claude-haiku-4-5", "claude-sonnet-4-5"];
406
- readonly Google: readonly ["gemini-3-flash-preview", "gemini-3-pro-preview"];
424
+ readonly Anthropic: readonly ["claude-haiku-4-5", "claude-sonnet-4-6"];
425
+ readonly Google: readonly ["gemini-3-flash-preview", "gemini-3.1-pro-preview"];
407
426
  readonly Perplexity: readonly ["sonar", "sonar-pro"];
408
427
  };
409
428
 
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",n="user",o="assistant",a="OpenAI",i="Anthropic",s="Google",O="Summary",_="Memory",A="Perplexity",R=a,l=[a,i,s],P="gpt-5.2",M="gpt-5-mini",d="gpt-5-nano",I="gpt-4.1-nano",T="claude-haiku-4-5",D="claude-sonnet-4-5",L="gemini-3-flash-preview",S="gemini-3-pro-preview",g="sonar",N="sonar-pro",u="openai/gpt-oss-20b:free",h="gpt-5-nano",c="gpt-5-nano",p="text-embedding-3-small",m="gemini-3-pro-image-preview",G={[P]:"GPT-5.2",[M]:"GPT-5 Mini",[d]:"GPT-5 Nano",[I]:"GPT-4.1 Nano",[T]:"Claude Haiku 4.5",[D]:"Claude Sonnet 4.5",[L]:"Gemini 3 Flash",[S]:"Gemini 3 Pro",[g]:"Sonar",[N]:"Sonar Pro",[m]:"Nano Banana Pro"},f=[P,M,d,T,D,L,S,m],C=[P,M,d,D,S],H={[a]:[I,P,M,d],[i]:[T,D],[s]:[L,S],[A]:[g,N]},U={[a]:[r,n,o],[i]:[n,o],[O]:[n,o],[_]:[n,o],[s]:[n,o],[A]:[n,o]},y={[i]:["claude-sonnet-4","claude-haiku-4","claude-3"],[a]:["gpt-","o3","o4"],[s]:["gemini"],[A]:["sonar"]},v="x-diggidy-chat-id",B="timestamp",V="tokenUsage",Y="Diggidy",F="sassy:basic",b="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"},ADDON:{ATTACHMENTS:"addon:attachments",REASONING:"addon:reasoning",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},W=e=>{for(let[t,E]of Object.entries(y))if(E.some(t=>e.startsWith(t)))return t;return null},x=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,r]of Object.entries(H))r.includes(E)&&(e===a||e===i||e===s)&&t.add(e);return l.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(H))if(r.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},z=e=>{for(let t of j(e).values())if(t.length>1)return!0;return!1},X=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function K(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 Z(e){return C.includes(e)}var q="subtle";export{f as ALL_MODELS,l as ALL_PROVIDERS,C as ALL_REASONING_MODELS,Y as APPLICATION_NAME,y as APPROXIMATE_MODELS_PER_PROVIDER,k as CAPABILITIES,R as DEFAULT_PROVIDER,v as DIGGIDY_CHAT_ID_HEADER,H as MODELS_PER_PROVIDER,c as MODEL_CHAT_SUMMARY,T as MODEL_CLAUDE_HAIKU,D as MODEL_CLAUDE_SONNET,u as MODEL_DEV,G as MODEL_DISPLAY_NAMES,p as MODEL_EMBEDDING_TEXT,L as MODEL_GEMINI_FLASH,S as MODEL_GEMINI_PRO,m as MODEL_GENERATE_IMAGE,I as MODEL_GPT4_NANO,P as MODEL_GPT5,M as MODEL_GPT5_MINI,d as MODEL_GPT5_NANO,h as MODEL_MEMORY_INFERENCE,g as MODEL_SONAR,N as MODEL_SONAR_PRO,F as PLAN_BASIC,b as PLAN_PLUS,w as PLAN_PREMIUM,i as PROVIDER_ANTHROPIC,s as PROVIDER_GOOGLE,_ as PROVIDER_MEMORY,a as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,U as PROVIDER_ROLE_MAP,O as PROVIDER_SUMMARY,o as ROLE_ASSISTANT,r as ROLE_SYSTEM,n as ROLE_USER,B as SORT_BY_TIMESTAMP,V as SORT_BY_TOKEN_USAGE,e as THEME_STANDARD,W as findProvider,j as getModelsGroupedByProvider,x as getProvidersFromModels,z as hasMultipleModelsPerProvider,K as isEntitled,X as isModelAllowedForPlan,Z as isReasoningModel,q 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",n="user",o="assistant",a="OpenAI",i="Anthropic",s="Google",O="Summary",_="Memory",R="Perplexity",A=a,P=[a,i,s],M="gpt-5.2",l="gpt-5-mini",T="gpt-5-nano",S="gpt-4.1-nano",I="claude-haiku-4-5",d="claude-sonnet-4-6",D="gemini-3-flash-preview",L="gemini-3.1-pro-preview",N="sonar",g="sonar-pro",u="openai/gpt-oss-20b:free",c="gpt-5-nano",h="gpt-5-nano",m="text-embedding-3-small",p="gemini-3-pro-image-preview",C={[M]:"GPT-5.2",[l]:"GPT-5 Mini",[T]:"GPT-5 Nano",[S]:"GPT-4.1 Nano",[I]:"Claude Haiku 4.5",[d]:"Claude Sonnet 4.6",[D]:"Gemini 3 Flash",[L]:"Gemini 3.1 Pro",[N]:"Sonar",[g]:"Sonar Pro",[p]:"Nano Banana Pro"},G=[M,l,T,I,d,D,L,p],f=[M,l,T,d,L],H={[a]:[S,M,l,T],[i]:[I,d],[s]:[D,L],[R]:[N,g]},U={[a]:[r,n,o],[i]:[n,o],[O]:[n,o],[_]:[n,o],[s]:[n,o],[R]:[n,o]},y={[i]:["claude-sonnet-4","claude-haiku-4","claude-3"],[a]:["gpt-","o3","o4"],[s]:["gemini"],[R]:["sonar"]},v="x-diggidy-chat-id",B="timestamp",V="tokenUsage",Y="Diggidy",F="sassy:basic",b="sassy:plus",w="sassy:advanced",X={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"},ADDON:{ATTACHMENTS:"addon:attachments",REASONING:"addon:reasoning",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},k=5e4,x=4,W="context-compression-summary",j=e=>{for(let[t,E]of Object.entries(y))if(E.some(t=>e.startsWith(t)))return t;return null},z=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,r]of Object.entries(H))r.includes(E)&&(e===a||e===i||e===s)&&t.add(e);return P.filter(e=>t.has(e))},K=e=>{let t=new Map;if(!e||0===e.length)return t;for(let E of e)for(let[e,r]of Object.entries(H))if(r.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},Z=e=>{for(let t of K(e).values())if(t.length>1)return!0;return!1},q=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function J(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 Q(e){return f.includes(e)}var $="subtle";export{G as ALL_MODELS,P as ALL_PROVIDERS,f as ALL_REASONING_MODELS,Y as APPLICATION_NAME,y as APPROXIMATE_MODELS_PER_PROVIDER,X as CAPABILITIES,x as CONTEXT_COMPRESSION_KEEP_RECENT,W as CONTEXT_COMPRESSION_SUMMARY_ID,k as CONTEXT_COMPRESSION_THRESHOLD,A as DEFAULT_PROVIDER,v as DIGGIDY_CHAT_ID_HEADER,H as MODELS_PER_PROVIDER,h as MODEL_CHAT_SUMMARY,I as MODEL_CLAUDE_HAIKU,d as MODEL_CLAUDE_SONNET,u as MODEL_DEV,C as MODEL_DISPLAY_NAMES,m as MODEL_EMBEDDING_TEXT,D as MODEL_GEMINI_FLASH,L as MODEL_GEMINI_PRO,p as MODEL_GENERATE_IMAGE,S as MODEL_GPT4_NANO,M as MODEL_GPT5,l as MODEL_GPT5_MINI,T as MODEL_GPT5_NANO,c as MODEL_MEMORY_INFERENCE,N as MODEL_SONAR,g as MODEL_SONAR_PRO,F as PLAN_BASIC,b as PLAN_PLUS,w as PLAN_PREMIUM,i as PROVIDER_ANTHROPIC,s as PROVIDER_GOOGLE,_ as PROVIDER_MEMORY,a as PROVIDER_OPENAI,R as PROVIDER_PERPLEXITY,U as PROVIDER_ROLE_MAP,O as PROVIDER_SUMMARY,o as ROLE_ASSISTANT,r as ROLE_SYSTEM,n as ROLE_USER,B as SORT_BY_TIMESTAMP,V as SORT_BY_TOKEN_USAGE,e as THEME_STANDARD,j as findProvider,K as getModelsGroupedByProvider,z as getProvidersFromModels,Z as hasMultipleModelsPerProvider,J as isEntitled,q as isModelAllowedForPlan,Q as isReasoningModel,$ 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.25.0",
3
+ "version": "4.26.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": "b1c99f8e18c5fcc9c35530284c8e5b84b3bb1157"
35
+ "gitHead": "5c7e0f7c932d2da2d1fc30c7dcc213b7b39a10ed"
36
36
  }