@versini/sassysaint-common 4.41.0 → 4.43.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.4-mini", "gpt-5.4-nano", "claude-opus-4-8", "claude-sonnet-4-6", "claude-haiku-4-5", "gemini-3-flash-preview", "gemini-3.1-pro-preview", "gemini-3-pro-image"];
23
+ export declare const ALL_MODELS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "claude-opus-4-8", "claude-sonnet-5", "claude-haiku-4-5", "gemini-3-flash-preview", "gemini-3.1-pro-preview", "gemini-3-pro-image"];
24
24
 
25
25
  export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
26
26
 
@@ -37,7 +37,7 @@ export declare const APPLICATION_NAME = "Diggidy";
37
37
  * versions change over time.
38
38
  */
39
39
  export declare const APPROXIMATE_MODELS_PER_PROVIDER: {
40
- readonly Anthropic: readonly ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4", "claude-3"];
40
+ readonly Anthropic: readonly ["claude-opus-4", "claude-sonnet-5", "claude-sonnet-4", "claude-haiku-4", "claude-3"];
41
41
  readonly OpenAI: readonly ["gpt-", "o3", "o4"];
42
42
  readonly Google: readonly ["gemini"];
43
43
  readonly Perplexity: readonly ["sonar"];
@@ -82,6 +82,15 @@ export declare const CAPABILITIES: {
82
82
  */
83
83
  export declare type CapabilityInput = string | readonly string[];
84
84
 
85
+ /**
86
+ * Metadata key the server stamps on the assistant message's `finish` part to
87
+ * mark a turn that streamed to completion. A truncated stream never emits a
88
+ * finish part, so the client treats this key's absence as a turn that was cut
89
+ * off mid-stream (#2890). Shared so the server writer and client reader can
90
+ * never drift on the string.
91
+ */
92
+ export declare const CHAT_COMPLETION_MARKER_KEY = "complete";
93
+
85
94
  /**
86
95
  * Maps each ActionColor to its corresponding Tailwind CSS class string. These
87
96
  * are complete class strings (e.g., "fill-[#7A9BC4]", "text-copy-medium") that
@@ -471,7 +480,7 @@ export declare const MEMORY_CATEGORIES: readonly ["preference", "identity", "con
471
480
 
472
481
  export declare type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
473
482
 
474
- export declare const MODEL_AUTO_RESPONDER_ANTHROPIC = "claude-sonnet-4-6";
483
+ export declare const MODEL_AUTO_RESPONDER_ANTHROPIC = "claude-sonnet-5";
475
484
 
476
485
  export declare const MODEL_AUTO_RESPONDER_GOOGLE = "gemini-3-flash-preview";
477
486
 
@@ -510,7 +519,7 @@ export declare const MODEL_CLAUDE_HAIKU = "claude-haiku-4-5";
510
519
 
511
520
  export declare const MODEL_CLAUDE_OPUS = "claude-opus-4-8";
512
521
 
513
- export declare const MODEL_CLAUDE_SONNET = "claude-sonnet-4-6";
522
+ export declare const MODEL_CLAUDE_SONNET = "claude-sonnet-5";
514
523
 
515
524
  export declare const MODEL_DEV = "openai/gpt-oss-20b:free";
516
525
 
@@ -552,7 +561,7 @@ export declare const MODEL_TEACHER = "mistral-large-latest";
552
561
  */
553
562
  export declare const MODELS_PER_PROVIDER: {
554
563
  readonly OpenAI: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
555
- readonly Anthropic: readonly ["claude-opus-4-8", "claude-haiku-4-5", "claude-sonnet-4-6"];
564
+ readonly Anthropic: readonly ["claude-opus-4-8", "claude-haiku-4-5", "claude-sonnet-5"];
556
565
  readonly Google: readonly ["gemini-3-flash-preview", "gemini-3.1-pro-preview"];
557
566
  readonly Perplexity: readonly ["sonar", "sonar-pro"];
558
567
  };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],E=["identity","bio","constraint","professional"],t=e=>E.includes(e);var O,n=((O={})[O.NewChat=0]="NewChat",O[O.Prompts=1]="Prompts",O[O.Attachment=2]="Attachment",O[O.PrivateChat=3]="PrivateChat",O[O.Reasoning=4]="Reasoning",O[O.Send=5]="Send",O[O.Header=6]="Header",O[O.Provider=7]="Provider",O[O.Logo=8]="Logo",O[O.Placeholder=9]="Placeholder",O[O.Footer=10]="Footer",O);let r="system",i="user",o="assistant",a="OpenAI",_="Anthropic",R="Google",T="Summary",s="Memory",A="Perplexity",I="Mistral",L="Auto",M=a,S=[a,_,R],P="gpt-5.4",l="gpt-5.4-mini",N="gpt-5.4-nano",g="claude-opus-4-8",D="claude-sonnet-4-6",d="claude-haiku-4-5",c="gemini-3-flash-preview",u="gemini-3.1-pro-preview",C="sonar",h="sonar-pro",p="openai/gpt-oss-20b:free",G="mistral-large-latest",U="gpt-5.4-mini",m="gpt-5.4-nano",H="gpt-5.4-mini",f="text-embedding-3-small",y="gemini-3-pro-image",B=N,Y=d,b=c,v=l,F=D,w=c,V=5,X=3e4,k={[P]:"GPT-5.4",[l]:"GPT-5.4 Mini",[N]:"GPT-5.4 Nano",[g]:"Claude Opus 4.8",[D]:"Claude Sonnet 4.6",[d]:"Claude Haiku 4.5",[u]:"Gemini 3.1 Pro",[c]:"Gemini 3 Flash",[C]:"Sonar",[h]:"Sonar Pro",[y]:"Nano Banana 3 Pro",[G]:"Mistral Large"},x=[P,l,N,g,D,d,c,u,y],W=[P,l,N,g,D,u],z={[a]:[P,l,N],[_]:[g,d,D],[R]:[c,u],[A]:[C,h]},K={[a]:[r,i,o],[_]:[i,o],[T]:[i,o],[s]:[i,o],[R]:[i,o],[A]:[i,o],[I]:[i,o]},Z={[_]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[a]:["gpt-","o3","o4"],[R]:["gemini"],[A]:["sonar"],[I]:["mistral"]},j="x-diggidy-chat-id",Q="x-diggidy-chat-timestamp",q="timestamp",J="tokenUsage",$="Diggidy",ee="sassy:basic",eE="sassy:plus",et="sassy:advanced",eO={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"}},en={code_interpreter:"Running code...",web_search:"Searching the web...",[eO.TOOL.WEATHER]:"Checking the weather...",[eO.TOOL.POLLUTION]:"Fetching air pollution data...",[eO.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[eO.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[eO.TOOL.WEBSEARCH]:"Searching the web...",[eO.TOOL.GITREPOSITORY]:"Looking up repository...",[eO.TOOL.HOTELS]:"Searching for hotels...",[eO.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[eO.TOOL.GENERATE_IMAGE]:"Generating image...",[eO.TOOL.BARCODE]:"Looking up product...",[eO.TOOL.PRONUNCIATION]:"Generating pronunciation...",[eO.TOOL.HUMANIZE]:"Rewriting text...",[eO.TOOL.IMAGES]:"Searching for images..."},er="Using tools...",ei=5e4,eo=1e5,ea=8e5;function e_(e){return e===et?ea:eo}let eR=16384,eT=4,es=3,eA="context-compression-summary",eI=new Set(["OpenAI",_,"Google",I]);function eL(e){return"string"==typeof e&&eI.has(e)}let eM=e=>{for(let[E,t]of Object.entries(Z))if(t.some(E=>e.startsWith(E)))return E;return null},eS=e=>{if(!e||0===e.length)return[];let E=new Set;for(let t of e)for(let[e,O]of Object.entries(z))O.includes(t)&&("OpenAI"===e||e===_||"Google"===e)&&E.add(e);return S.filter(e=>E.has(e))},eP=e=>{let E=new Map;if(!e||0===e.length)return E;for(let t of e)for(let[e,O]of Object.entries(z))if(O.includes(t)){E.has(e)||E.set(e,[]),E.get(e)?.push(t);break}return E},el=e=>{for(let E of eP(e).values())if(E.length>1)return!0;return!1},eN=(e,E)=>!!e&&!!E&&0!==E.length&&E.includes(e);function eg(e,E,t){if(!E||Array.isArray(E)&&0===E.length)return!0;let O=e instanceof Set?e:e?new Set(e):null;return!!O&&0!==O.size&&("string"==typeof E?O.has(E):t?.any===!0?E.some(e=>O.has(e)):E.every(e=>O.has(e)))}function eD(e){return W.includes(e)}export{x as ALL_MODELS,S as ALL_PROVIDERS,W as ALL_REASONING_MODELS,$ as APPLICATION_NAME,Z as APPROXIMATE_MODELS_PER_PROVIDER,eO as CAPABILITIES,eo as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,ea as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,es as CONTEXT_COMPRESSION_KEEP_IMAGES,eT as CONTEXT_COMPRESSION_KEEP_RECENT,eA as CONTEXT_COMPRESSION_SUMMARY_ID,ei as CONTEXT_COMPRESSION_THRESHOLD,M as DEFAULT_PROVIDER,er as DEFAULT_TOOL_LOADING_LABEL,j as DIGGIDY_CHAT_ID_HEADER,Q as DIGGIDY_CHAT_TIMESTAMP_HEADER,E as HARD_CATEGORIES,eR as MAX_OUTPUT_TOKENS,V as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,z as MODELS_PER_PROVIDER,F as MODEL_AUTO_RESPONDER_ANTHROPIC,w as MODEL_AUTO_RESPONDER_GOOGLE,v as MODEL_AUTO_RESPONDER_OPENAI,Y as MODEL_AUTO_ROUTER_ANTHROPIC,b as MODEL_AUTO_ROUTER_GOOGLE,B as MODEL_AUTO_ROUTER_OPENAI,m as MODEL_CHAT_SUMMARY,d as MODEL_CLAUDE_HAIKU,g as MODEL_CLAUDE_OPUS,D as MODEL_CLAUDE_SONNET,p as MODEL_DEV,k as MODEL_DISPLAY_NAMES,f as MODEL_EMBEDDING_TEXT,c as MODEL_GEMINI_FLASH,u as MODEL_GEMINI_PRO,y as MODEL_GENERATE_IMAGE,P as MODEL_GPT5,l as MODEL_GPT5_MINI,N as MODEL_GPT5_NANO,U as MODEL_MEMORY_INFERENCE,H as MODEL_SEARCH_DECOMPOSER,C as MODEL_SONAR,h as MODEL_SONAR_PRO,G as MODEL_TEACHER,ee as PLAN_BASIC,eE as PLAN_PLUS,et as PLAN_PREMIUM,_ as PROVIDER_ANTHROPIC,L as PROVIDER_AUTO,R as PROVIDER_GOOGLE,s as PROVIDER_MEMORY,I as PROVIDER_MISTRAL,a as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,K as PROVIDER_ROLE_MAP,T as PROVIDER_SUMMARY,o as ROLE_ASSISTANT,r as ROLE_SYSTEM,i as ROLE_USER,X as SEARCH_QUERY_TIMEOUT_MS,q as SORT_BY_TIMESTAMP,J as SORT_BY_TOKEN_USAGE,en as TOOL_LOADING_LABELS,eM as findProvider,e_ as getCompressionEmergencyThreshold,eP as getModelsGroupedByProvider,eS as getProvidersFromModels,el as hasMultipleModelsPerProvider,eg as isEntitled,t as isHardCategory,eN as isModelAllowedForPlan,eL as isRealProvider,eD as isReasoningModel,n as ActionColor};
1
+ let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],E=["identity","bio","constraint","professional"],t=e=>E.includes(e);var O,n=((O={})[O.NewChat=0]="NewChat",O[O.Prompts=1]="Prompts",O[O.Attachment=2]="Attachment",O[O.PrivateChat=3]="PrivateChat",O[O.Reasoning=4]="Reasoning",O[O.Send=5]="Send",O[O.Header=6]="Header",O[O.Provider=7]="Provider",O[O.Logo=8]="Logo",O[O.Placeholder=9]="Placeholder",O[O.Footer=10]="Footer",O);let r="system",i="user",o="assistant",a="OpenAI",_="Anthropic",R="Google",T="Summary",A="Memory",s="Perplexity",I="Mistral",L="Auto",M=a,S=[a,_,R],l="gpt-5.4",P="gpt-5.4-mini",N="gpt-5.4-nano",g="claude-opus-4-8",D="claude-sonnet-5",d="claude-haiku-4-5",c="gemini-3-flash-preview",C="gemini-3.1-pro-preview",u="sonar",h="sonar-pro",p="openai/gpt-oss-20b:free",G="mistral-large-latest",U="gpt-5.4-mini",m="gpt-5.4-nano",H="gpt-5.4-mini",f="text-embedding-3-small",y="gemini-3-pro-image",Y=N,B=d,b=c,v=P,F=D,w=c,V=5,X=3e4,k={[l]:"GPT-5.4",[P]:"GPT-5.4 Mini",[N]:"GPT-5.4 Nano",[g]:"Claude Opus 4.8",[D]:"Claude Sonnet 5",[d]:"Claude Haiku 4.5",[C]:"Gemini 3.1 Pro",[c]:"Gemini 3 Flash",[u]:"Sonar",[h]:"Sonar Pro",[y]:"Nano Banana 3 Pro",[G]:"Mistral Large"},x=[l,P,N,g,D,d,c,C,y],K=[l,P,N,g,D,C],W={[a]:[l,P,N],[_]:[g,d,D],[R]:[c,C],[s]:[u,h]},z={[a]:[r,i,o],[_]:[i,o],[T]:[i,o],[A]:[i,o],[R]:[i,o],[s]:[i,o],[I]:[i,o]},Z={[_]:["claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-4","claude-3"],[a]:["gpt-","o3","o4"],[R]:["gemini"],[s]:["sonar"],[I]:["mistral"]},j="x-diggidy-chat-id",Q="x-diggidy-chat-timestamp",q="complete",J="timestamp",$="tokenUsage",ee="Diggidy",eE="sassy:basic",et="sassy:plus",eO="sassy:advanced",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",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings"},ADDON:{ATTACHMENTS:"addon:attachments",REASONING:"addon:reasoning",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},er={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.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..."},ei="Using tools...",eo=5e4,ea=1e5,e_=8e5;function eR(e){return e===eO?e_:ea}let eT=16384,eA=4,es=3,eI="context-compression-summary",eL=new Set(["OpenAI",_,"Google",I]);function eM(e){return"string"==typeof e&&eL.has(e)}let eS=e=>{for(let[E,t]of Object.entries(Z))if(t.some(E=>e.startsWith(E)))return E;return null},el=e=>{if(!e||0===e.length)return[];let E=new Set;for(let t of e)for(let[e,O]of Object.entries(W))O.includes(t)&&("OpenAI"===e||e===_||"Google"===e)&&E.add(e);return S.filter(e=>E.has(e))},eP=e=>{let E=new Map;if(!e||0===e.length)return E;for(let t of e)for(let[e,O]of Object.entries(W))if(O.includes(t)){E.has(e)||E.set(e,[]),E.get(e)?.push(t);break}return E},eN=e=>{for(let E of eP(e).values())if(E.length>1)return!0;return!1},eg=(e,E)=>!!e&&!!E&&0!==E.length&&E.includes(e);function eD(e,E,t){if(!E||Array.isArray(E)&&0===E.length)return!0;let O=e instanceof Set?e:e?new Set(e):null;return!!O&&0!==O.size&&("string"==typeof E?O.has(E):t?.any===!0?E.some(e=>O.has(e)):E.every(e=>O.has(e)))}function ed(e){return K.includes(e)}export{x as ALL_MODELS,S as ALL_PROVIDERS,K as ALL_REASONING_MODELS,ee as APPLICATION_NAME,Z as APPROXIMATE_MODELS_PER_PROVIDER,en as CAPABILITIES,q as CHAT_COMPLETION_MARKER_KEY,ea as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,e_ as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,es as CONTEXT_COMPRESSION_KEEP_IMAGES,eA as CONTEXT_COMPRESSION_KEEP_RECENT,eI as CONTEXT_COMPRESSION_SUMMARY_ID,eo as CONTEXT_COMPRESSION_THRESHOLD,M as DEFAULT_PROVIDER,ei as DEFAULT_TOOL_LOADING_LABEL,j as DIGGIDY_CHAT_ID_HEADER,Q as DIGGIDY_CHAT_TIMESTAMP_HEADER,E as HARD_CATEGORIES,eT as MAX_OUTPUT_TOKENS,V as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,W as MODELS_PER_PROVIDER,F as MODEL_AUTO_RESPONDER_ANTHROPIC,w as MODEL_AUTO_RESPONDER_GOOGLE,v as MODEL_AUTO_RESPONDER_OPENAI,B as MODEL_AUTO_ROUTER_ANTHROPIC,b as MODEL_AUTO_ROUTER_GOOGLE,Y as MODEL_AUTO_ROUTER_OPENAI,m as MODEL_CHAT_SUMMARY,d as MODEL_CLAUDE_HAIKU,g as MODEL_CLAUDE_OPUS,D as MODEL_CLAUDE_SONNET,p as MODEL_DEV,k as MODEL_DISPLAY_NAMES,f as MODEL_EMBEDDING_TEXT,c as MODEL_GEMINI_FLASH,C as MODEL_GEMINI_PRO,y as MODEL_GENERATE_IMAGE,l as MODEL_GPT5,P as MODEL_GPT5_MINI,N as MODEL_GPT5_NANO,U as MODEL_MEMORY_INFERENCE,H as MODEL_SEARCH_DECOMPOSER,u as MODEL_SONAR,h as MODEL_SONAR_PRO,G as MODEL_TEACHER,eE as PLAN_BASIC,et as PLAN_PLUS,eO as PLAN_PREMIUM,_ as PROVIDER_ANTHROPIC,L as PROVIDER_AUTO,R as PROVIDER_GOOGLE,A as PROVIDER_MEMORY,I as PROVIDER_MISTRAL,a as PROVIDER_OPENAI,s as PROVIDER_PERPLEXITY,z as PROVIDER_ROLE_MAP,T as PROVIDER_SUMMARY,o as ROLE_ASSISTANT,r as ROLE_SYSTEM,i as ROLE_USER,X as SEARCH_QUERY_TIMEOUT_MS,J as SORT_BY_TIMESTAMP,$ as SORT_BY_TOKEN_USAGE,er as TOOL_LOADING_LABELS,eS as findProvider,eR as getCompressionEmergencyThreshold,eP as getModelsGroupedByProvider,el as getProvidersFromModels,eN as hasMultipleModelsPerProvider,eD as isEntitled,t as isHardCategory,eg as isModelAllowedForPlan,eM as isRealProvider,ed as isReasoningModel,n as ActionColor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.41.0",
3
+ "version": "4.43.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": "f28d4ef7ce78021014a1a55a16a59ed4f7186222"
35
+ "gitHead": "766c5339f62c011244e09cad92424ac8251cc3c2"
36
36
  }