@versini/sassysaint-common 4.33.0 → 4.34.1

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
 
@@ -386,7 +386,14 @@ export declare const isModelAllowedForPlan: (selectedModel: string | undefined |
386
386
  */
387
387
  export declare function isReasoningModel(model: string): boolean;
388
388
 
389
- export declare const MODEL_CHAT_SUMMARY = "gpt-5-nano";
389
+ /**
390
+ * Cap per-step output tokens for streamText(). 16,384 is generous enough
391
+ * for any normal response but prevents runaway generation that burns
392
+ * tokens silently when the model loops or hits provider limits.
393
+ */
394
+ export declare const MAX_OUTPUT_TOKENS = 16384;
395
+
396
+ export declare const MODEL_CHAT_SUMMARY = "gpt-5.4-nano";
390
397
 
391
398
  export declare const MODEL_CLAUDE_HAIKU = "claude-haiku-4-5";
392
399
 
@@ -408,7 +415,7 @@ export declare const MODEL_GEMINI_FLASH = "gemini-3-flash-preview";
408
415
 
409
416
  export declare const MODEL_GEMINI_PRO = "gemini-3.1-pro-preview";
410
417
 
411
- export declare const MODEL_GENERATE_IMAGE = "gemini-3.1-flash-image-preview";
418
+ export declare const MODEL_GENERATE_IMAGE = "gemini-3-pro-image-preview";
412
419
 
413
420
  export declare const MODEL_GPT4_NANO = "gpt-4.1-nano";
414
421
 
@@ -417,11 +424,11 @@ export declare const MODEL_GPT4_NANO = "gpt-4.1-nano";
417
424
  */
418
425
  export declare const MODEL_GPT5 = "gpt-5.4";
419
426
 
420
- export declare const MODEL_GPT5_MINI = "gpt-5-mini";
427
+ export declare const MODEL_GPT5_MINI = "gpt-5.4-mini";
421
428
 
422
- export declare const MODEL_GPT5_NANO = "gpt-5-nano";
429
+ export declare const MODEL_GPT5_NANO = "gpt-5.4-nano";
423
430
 
424
- export declare const MODEL_MEMORY_INFERENCE = "gpt-5-nano";
431
+ export declare const MODEL_MEMORY_INFERENCE = "gpt-5.4-nano";
425
432
 
426
433
  export declare const MODEL_SONAR = "sonar";
427
434
 
@@ -433,7 +440,7 @@ export declare const MODEL_TEACHER = "mistral-large-latest";
433
440
  * List of models available according to the providers.
434
441
  */
435
442
  export declare const MODELS_PER_PROVIDER: {
436
- readonly OpenAI: readonly ["gpt-4.1-nano", "gpt-5.4", "gpt-5-mini", "gpt-5-nano"];
443
+ readonly OpenAI: readonly ["gpt-4.1-nano", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
437
444
  readonly Anthropic: readonly ["claude-opus-4-6", "claude-haiku-4-5", "claude-sonnet-4-6"];
438
445
  readonly Google: readonly ["gemini-3-flash-preview", "gemini-3.1-pro-preview"];
439
446
  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 a="system",r="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-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]:[a,r,n],[i]:[r,n],[O]:[r,n],[_]:[r,n],[s]:[r,n],[R]:[r,n],[A]:[r,n]},F={[i]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[o]:["gpt-","o3","o4"],[s]:["gemini"],[R]:["sonar"],[A]:["mistral"]},V="x-diggidy-chat-id",Y="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(F))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,a]of Object.entries(v))a.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,a]of Object.entries(v))if(a.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 a=e instanceof Set?e:e?new Set(e):null;return!!a&&0!==a.size&&("string"==typeof t?a.has(t):E?.any===!0?t.some(e=>a.has(e)):t.every(e=>a.has(e)))}function eE(e){return y.includes(e)}var ea="subtle";export{U as ALL_MODELS,M as ALL_PROVIDERS,y as ALL_REASONING_MODELS,x as APPLICATION_NAME,F 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,V as DIGGIDY_CHAT_ID_HEADER,Y 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,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,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,a as ROLE_SYSTEM,r 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,ea 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",M=o,l=[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",N="claude-haiku-4-5",L="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",[N]:"Claude Haiku 4.5",[g]:"Gemini 3.1 Pro",[L]:"Gemini 3 Flash",[u]:"Sonar",[c]:"Sonar Pro",[H]:"Nano Banana 3 Pro",[h]:"Mistral Large"},U=[P,T,I,D,d,N,L,g,H],y=[P,T,I,D,d,g],v={[o]:[S,P,T,I],[i]:[D,N,d],[s]:[L,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",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"}},j=5e4,z=16384,Z=4,q="context-compression-summary",J=e=>{for(let[t,E]of Object.entries(V))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 l.filter(e=>t.has(e))},$=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},ee=e=>{for(let t of $(e).values())if(t.length>1)return!0;return!1},et=(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 er(e){return y.includes(e)}var ea="subtle";export{U as ALL_MODELS,l as ALL_PROVIDERS,y as ALL_REASONING_MODELS,X as APPLICATION_NAME,V as APPROXIMATE_MODELS_PER_PROVIDER,K as CAPABILITIES,Z as CONTEXT_COMPRESSION_KEEP_RECENT,q as CONTEXT_COMPRESSION_SUMMARY_ID,j as CONTEXT_COMPRESSION_THRESHOLD,M as DEFAULT_PROVIDER,Y as DIGGIDY_CHAT_ID_HEADER,F as DIGGIDY_CHAT_TIMESTAMP_HEADER,z as MAX_OUTPUT_TOKENS,v as MODELS_PER_PROVIDER,p as MODEL_CHAT_SUMMARY,N 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,L 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,J as findProvider,$ as getModelsGroupedByProvider,Q as getProvidersFromModels,ee as hasMultipleModelsPerProvider,eE as isEntitled,et as isModelAllowedForPlan,er as isReasoningModel,ea 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.33.0",
3
+ "version": "4.34.1",
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": "95d411f5a540f746817a1d70a1fdc04ba78351b2"
35
+ "gitHead": "30b76679108a574d32fbc9002929a86ed4c8b2d7"
36
36
  }