@versini/sassysaint-common 4.68.0 → 4.70.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/constants/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./memory.js";export*from"./theme-types.js";let E="system",e="user",O="assistant",_="OpenAI",T="Anthropic",R="Google",S="Summary",t="Memory",a="Perplexity",A=_,I=[_,T,R],L="gpt-6.1-sol",i="gpt-6-luna",s="claude-opus-5-5",n="claude-sonnet-5-5",P="claude-haiku-5-5",N="gemini-3.8-flash",o="gemini-3.5-flash-lite",M="sonar",r="sonar-pro",D="perplexity-search",g="openai/gpt-oss-20b:free",C="claude-haiku-5-5",u="gpt-6-luna",l="gemini-3.5-flash-lite",c="gemini-3.8-flash",h="gpt-6.1-sol",U="gpt-6-luna",d="gpt-5.6-luna",m="gemini-3.6-flash",p="text-embedding-3-small",G="gpt-image-2.5-sunburst",H=5,y=1e4,B=3e3,Y={[L]:"GPT-6.1 Sol",[i]:"GPT-6 Luna",[s]:"Claude Opus 5.5",[n]:"Claude Sonnet 5.5",[P]:"Claude Haiku 5.5",[N]:"Gemini 3.8 Flash",[o]:"Gemini 3.5 Flash-Lite",[M]:"Sonar",[r]:"Sonar Pro",[D]:"Perplexity Search",[G]:"GPT Image 2.5 Sunburst"},F=[L,i,s,n,P,o,N,G],f=[L,i,s,n,P,N,o],V="fast",
|
|
1
|
+
export*from"./memory.js";export*from"./theme-types.js";let E="system",e="user",O="assistant",_="OpenAI",T="Anthropic",R="Google",S="Summary",t="Memory",a="Perplexity",A=_,I=[_,T,R],L="gpt-6.1-sol",i="gpt-6-luna",s="claude-opus-5-5",n="claude-sonnet-5-5",P="claude-haiku-5-5",N="gemini-3.8-flash",o="gemini-3.5-flash-lite",M="sonar",r="sonar-pro",D="perplexity-search",g="openai/gpt-oss-20b:free",C="claude-haiku-5-5",u="gpt-6-luna",l="gemini-3.5-flash-lite",c="gemini-3.8-flash",h="gpt-6.1-sol",U="gpt-6-luna",d="gpt-5.6-luna",m="gemini-3.6-flash",p="text-embedding-3-small",G="gpt-image-2.5-sunburst",H=5,y=1e4,B=3e3,Y={[L]:"GPT-6.1 Sol",[i]:"GPT-6 Luna",[s]:"Claude Opus 5.5",[n]:"Claude Sonnet 5.5",[P]:"Claude Haiku 5.5",[N]:"Gemini 3.8 Flash",[o]:"Gemini 3.5 Flash-Lite",[M]:"Sonar",[r]:"Sonar Pro",[D]:"Perplexity Search",[G]:"GPT Image 2.5 Sunburst"},F=[L,i,s,n,P,o,N,G],f=[L,i,s,n,P,N,o],V="fast",W="balanced",b="thorough",X=[V,W,b],k={[V]:"low",[W]:"medium",[b]:"high"},w={[_]:V,[T]:W,[R]:V},x="none",K=["settings","shortcuts","memories","history","usage","about"],Z={[_]:[L,i],[T]:[s,P,n],[R]:[o,N],[a]:[M,r,D]},v={[_]:[E,e,O],[T]:[e,O],[S]:[e,O],[t]:[e,O],[R]:[e,O],[a]:[e,O]},z={[T]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-5","claude-haiku-4","claude-3"],[_]:["gpt-","o3","o4"],[R]:["gemini"],[a]:["sonar"]},Q="x-diggidy-chat-id",j="x-diggidy-chat-timestamp",q="complete",J="timestamp",$="tokenUsage",EE="Diggidy",Ee="sassy:basic",EO="sassy:plus",E_="sassy:advanced",ET={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",LOCAL_BUSINESSES:"getLocalBusinesses",NEWS_BRIEF:"getNewsBrief",PRODUCTS:"getProducts",REVIEW_TRUST:"getReviewTrust",STREAMING_PICKS:"getStreamingPicks",PRONUNCIATION:"getPronunciation",FRENCH_TEACHINGS:"getFrenchTeachings",PAST_CHATS:"searchPastChats"},ADDON:{ATTACHMENTS:"addon:attachments",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},ER={code_interpreter:"Running code...",web_search:"Searching the web...",[ET.TOOL.WEATHER]:"Checking the weather...",[ET.TOOL.POLLUTION]:"Fetching air pollution data...",[ET.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[ET.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[ET.TOOL.WEBSEARCH]:"Searching the web...",[ET.TOOL.GITREPOSITORY]:"Looking up repository...",[ET.TOOL.HOTELS]:"Searching for hotels...",[ET.TOOL.LOCAL_BUSINESSES]:"Searching for local businesses...",[ET.TOOL.NEWS_BRIEF]:"Reading today's news...",[ET.TOOL.PRODUCTS]:"Searching for products...",[ET.TOOL.REVIEW_TRUST]:"Checking reviews...",[ET.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[ET.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[ET.TOOL.GENERATE_IMAGE]:"Generating image...",[ET.TOOL.BARCODE]:"Looking up product...",[ET.TOOL.PRONUNCIATION]:"Generating pronunciation...",[ET.TOOL.HUMANIZE]:"Rewriting text...",[ET.TOOL.IMAGES]:"Searching for images...",[ET.TOOL.PAST_CHATS]:"Searching your past chats..."},ES="Using tools...",Et=1e5,Ea=8e5;function EA(E){return E===E_?Ea:Et}let EI=16384,EL=4,Ei=3,Es=8388608,En="context-compression-summary",EP="data-urlRead",EN="[Note from the system: you read",Eo="data-newsLinks";export{F as ALL_MODELS,I as ALL_PROVIDERS,f as ALL_REASONING_MODELS,EE as APPLICATION_NAME,z as APPROXIMATE_MODELS_PER_PROVIDER,ET as CAPABILITIES,q as CHAT_COMPLETION_MARKER_KEY,Et as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,Ea as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,Ei as CONTEXT_COMPRESSION_KEEP_IMAGES,EL as CONTEXT_COMPRESSION_KEEP_RECENT,Es as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,En as CONTEXT_COMPRESSION_SUMMARY_ID,A as DEFAULT_PROVIDER,w as DEFAULT_RESPONSE_SPEED,ES as DEFAULT_TOOL_LOADING_LABEL,Q as DIGGIDY_CHAT_ID_HEADER,j as DIGGIDY_CHAT_TIMESTAMP_HEADER,EI as MAX_OUTPUT_TOKENS,H as MAX_SEARCH_QUERIES,Z as MODELS_PER_PROVIDER,P as MODEL_ANTHROPIC_LOW,n as MODEL_ANTHROPIC_MEDIUM,s as MODEL_ANTHROPIC_TOP,u as MODEL_CHAT_SUMMARY,g as MODEL_DEV,Y as MODEL_DISPLAY_NAMES,p as MODEL_EMBEDDING_TEXT,G as MODEL_GENERATE_IMAGE,o as MODEL_GOOGLE_MEDIUM,N as MODEL_GOOGLE_TOP,h as MODEL_HUMANIZE_AUDIT,c as MODEL_HUMANIZE_REWRITE,C as MODEL_MEMORY_INFERENCE,U as MODEL_NUTRITION_SEARCH,i as MODEL_OPENAI_MEDIUM,L as MODEL_OPENAI_TOP,D as MODEL_PERPLEXITY_SEARCH,d as MODEL_REVIEW_TRUST_PANEL,m as MODEL_REVIEW_TRUST_PANEL_GOOGLE,l as MODEL_SEARCH_DECOMPOSER,M as MODEL_SONAR,r as MODEL_SONAR_PRO,Eo as NEWS_LINKS_PART_TYPE,Ee as PLAN_BASIC,EO as PLAN_PLUS,E_ as PLAN_PREMIUM,T as PROVIDER_ANTHROPIC,R as PROVIDER_GOOGLE,t as PROVIDER_MEMORY,_ as PROVIDER_OPENAI,a as PROVIDER_PERPLEXITY,v as PROVIDER_ROLE_MAP,S as PROVIDER_SUMMARY,x as QUICK_ACCESS_NONE,K as QUICK_ACCESS_PANELS,X as RESPONSE_SPEEDS,W as RESPONSE_SPEED_BALANCED,V as RESPONSE_SPEED_FAST,b as RESPONSE_SPEED_THOROUGH,k as RESPONSE_SPEED_TO_EFFORT,O as ROLE_ASSISTANT,E as ROLE_SYSTEM,e as ROLE_USER,B as SEARCH_DECOMPOSE_TIMEOUT_MS,y as SEARCH_QUERY_TIMEOUT_MS,J as SORT_BY_TIMESTAMP,$ as SORT_BY_TOKEN_USAGE,ER as TOOL_LOADING_LABELS,EN as URL_READ_NOTE_PREFIX,EP as URL_READ_PART_TYPE,EA as getCompressionEmergencyThreshold};
|
package/dist/index.d.ts
CHANGED
|
@@ -839,6 +839,15 @@ export declare const MODELS_PER_PROVIDER: {
|
|
|
839
839
|
readonly Perplexity: readonly ["sonar", "sonar-pro", "perplexity-search"];
|
|
840
840
|
};
|
|
841
841
|
|
|
842
|
+
/**
|
|
843
|
+
* UI message part that keeps a news brief's article links readable after a
|
|
844
|
+
* reload. getUrlContent may open a brief's links only while the getNewsBrief
|
|
845
|
+
* result is in the chat, and a saved chat does not keep tool results. The
|
|
846
|
+
* server persists the links the card showed as a message's `newsLinks`, and the
|
|
847
|
+
* client rebuilds this part from them when a chat is restored.
|
|
848
|
+
*/
|
|
849
|
+
export declare const NEWS_LINKS_PART_TYPE = "data-newsLinks";
|
|
850
|
+
|
|
842
851
|
export declare interface NewsBrief {
|
|
843
852
|
asOf: string;
|
|
844
853
|
note?: string;
|
|
@@ -848,8 +857,6 @@ export declare interface NewsBrief {
|
|
|
848
857
|
time: string;
|
|
849
858
|
};
|
|
850
859
|
items: NewsBriefItem[];
|
|
851
|
-
otherCommentary?: NewsCommentary[];
|
|
852
|
-
onThisDay?: NewsOnThisDay;
|
|
853
860
|
}
|
|
854
861
|
|
|
855
862
|
export declare interface NewsBriefItem {
|
|
@@ -859,15 +866,6 @@ export declare interface NewsBriefItem {
|
|
|
859
866
|
local: boolean;
|
|
860
867
|
image?: string;
|
|
861
868
|
evidence: NewsEvidence[];
|
|
862
|
-
commentary?: NewsCommentary[];
|
|
863
|
-
}
|
|
864
|
-
|
|
865
|
-
export declare interface NewsCommentary {
|
|
866
|
-
author: string;
|
|
867
|
-
newsletter: string;
|
|
868
|
-
title: string;
|
|
869
|
-
url: string;
|
|
870
|
-
summary: string;
|
|
871
869
|
}
|
|
872
870
|
|
|
873
871
|
export declare interface NewsEvidence {
|
|
@@ -876,11 +874,17 @@ export declare interface NewsEvidence {
|
|
|
876
874
|
url: string;
|
|
877
875
|
}
|
|
878
876
|
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
877
|
+
/**
|
|
878
|
+
* The news-links part for a persisted message's `newsLinks`, keeping only
|
|
879
|
+
* string entries, or none when no link is left. The server validates them again
|
|
880
|
+
* before trusting them.
|
|
881
|
+
*/
|
|
882
|
+
export declare function newsLinkParts(newsLinks: unknown): {
|
|
883
|
+
type: string;
|
|
884
|
+
data: {
|
|
885
|
+
urls: string[];
|
|
886
|
+
};
|
|
887
|
+
}[];
|
|
884
888
|
|
|
885
889
|
/**
|
|
886
890
|
* Color class mappings and CSS variables for the theme. Covers both color
|
|
@@ -1069,6 +1073,25 @@ export declare const SORT_BY_TOKEN_USAGE = "tokenUsage";
|
|
|
1069
1073
|
*/
|
|
1070
1074
|
export declare function stripAutoWrapper(modelName: string): string;
|
|
1071
1075
|
|
|
1076
|
+
/**
|
|
1077
|
+
* The follow-up a news card's "Tell me more" sends, and how the server tells it
|
|
1078
|
+
* apart from words the user typed.
|
|
1079
|
+
*
|
|
1080
|
+
* The story title is written by the model from third-party headlines, yet the
|
|
1081
|
+
* follow-up goes out as a user message, and the server grants a user's words
|
|
1082
|
+
* authority: a domain in them becomes a site getUrlContent may read
|
|
1083
|
+
* (buildAllowedHostSet), and memory extraction quotes them as the user's own.
|
|
1084
|
+
* So the title travels in one fixed form, between curly quotes, and
|
|
1085
|
+
* withoutCardQuote drops it wherever user text carries that authority. The chat
|
|
1086
|
+
* still shows the headline.
|
|
1087
|
+
*
|
|
1088
|
+
*/
|
|
1089
|
+
/**
|
|
1090
|
+
* The follow-up for one story: its title on one line, without curly quotes and
|
|
1091
|
+
* cut to MAX_TITLE_LENGTH characters, so it always matches CARD_FOLLOW_UP_RE.
|
|
1092
|
+
*/
|
|
1093
|
+
export declare function tellMeMorePrompt(title: string): string;
|
|
1094
|
+
|
|
1072
1095
|
/**
|
|
1073
1096
|
* Complete theme palette. This is the structure sent from the server to the
|
|
1074
1097
|
* client via getUserPreferences.
|
|
@@ -1086,6 +1109,18 @@ export declare interface ThemePalette {
|
|
|
1086
1109
|
normal: Palette;
|
|
1087
1110
|
}
|
|
1088
1111
|
|
|
1112
|
+
/**
|
|
1113
|
+
* The news-links part for a message's brief links. The single builder of that
|
|
1114
|
+
* shape, shared by the server, which also reads it back, and the client, which
|
|
1115
|
+
* rebuilds it from stored `newsLinks`.
|
|
1116
|
+
*/
|
|
1117
|
+
export declare function toNewsLinksPart(urls: string[]): {
|
|
1118
|
+
type: string;
|
|
1119
|
+
data: {
|
|
1120
|
+
urls: string[];
|
|
1121
|
+
};
|
|
1122
|
+
};
|
|
1123
|
+
|
|
1089
1124
|
/**
|
|
1090
1125
|
* Static loading labels for tool activity display. Generator tools override
|
|
1091
1126
|
* these with contextual text (e.g., "Analyzing bundle size for lodash...").
|
|
@@ -1128,4 +1163,11 @@ export declare interface UrlReadRecord {
|
|
|
1128
1163
|
partial: boolean;
|
|
1129
1164
|
}
|
|
1130
1165
|
|
|
1166
|
+
/**
|
|
1167
|
+
* A user message's text with a card follow-up's title removed, so only the
|
|
1168
|
+
* words the user chose keep their authority. Any other text is returned
|
|
1169
|
+
* unchanged.
|
|
1170
|
+
*/
|
|
1171
|
+
export declare function withoutCardQuote(text: string): string;
|
|
1172
|
+
|
|
1131
1173
|
export { }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let t="Tell me more about",e=RegExp(`^${t} “[^“”\\n]{1,200}”$`);function r(e){let r=e.replace(/[“”]/g,'"').replace(/\s+/g," ").trim().slice(0,200).trim()||"this story";return`${t} “${r}”`}function o(r){return e.test(r.trim())?`${t} a story`:r}export{r as tellMeMorePrompt,o as withoutCardQuote};
|
package/dist/utilities/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ALL_MODELS as e,ALL_PROVIDERS as t,ALL_REASONING_MODELS as r,APPROXIMATE_MODELS_PER_PROVIDER as n,DEFAULT_RESPONSE_SPEED as l,MODELS_PER_PROVIDER as
|
|
1
|
+
import{ALL_MODELS as e,ALL_PROVIDERS as t,ALL_REASONING_MODELS as r,APPROXIMATE_MODELS_PER_PROVIDER as n,DEFAULT_RESPONSE_SPEED as l,MODELS_PER_PROVIDER as o,PROVIDER_ANTHROPIC as s,PROVIDER_GOOGLE as i,PROVIDER_OPENAI as u,QUICK_ACCESS_NONE as f,QUICK_ACCESS_PANELS as a,RESPONSE_SPEEDS as d}from"../constants/index.js";export*from"./cardFollowUp.js";export*from"./newChatRequest.js";export*from"./newsBrief.js";export*from"./newsLinkParts.js";export*from"./readUrlParts.js";let c=new Set([u,s,i]);function p(e){return"string"==typeof e&&c.has(e)}let h=/^auto \((.+)\)$/;function m(e){let t=e.match(h);return t?t[1]:e}let g=e=>{for(let[t,r]of Object.entries(n))if(r.some(t=>e.startsWith(t)))return t;return null},v=/image|embedding|tts|realtime|transcribe|audio/;function w(t,{matchUnknownByPrefix:r=!1}){for(let[e,r]of Object.entries(o))if(r.includes(t))return p(e)?e:null;if(!r||e.includes(t)||v.test(t))return null;let n=g(t);return p(n)?n:null}let P=(e,r={})=>{if(!e||0===e.length)return[];let n=new Set;for(let t of e){let e=w(t,r);e&&n.add(e)}return t.filter(e=>n.has(e))},j=(e,t={})=>{let r=new Map;if(!e||0===e.length)return r;for(let n of e){let e=w(n,t);e&&(r.has(e)||r.set(e,[]),r.get(e)?.push(n))}return r},x=(e,t={})=>{for(let r of j(e,t).values())if(r.length>1)return!0;return!1},y=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function M(e,t,r){if(!t||Array.isArray(t)&&0===t.length)return!0;let n=e instanceof Set?e:e?new Set(e):null;return!!n&&0!==n.size&&("string"==typeof t?n.has(t):r?.any===!0?t.some(e=>n.has(e)):t.every(e=>n.has(e)))}function A(e){return r.includes(e)}function S(e){let t=t=>{let r=e?.[t];return d.includes(r)?r:l[t]};return{[u]:t(u),[s]:t(s),[i]:t(i)}}function b(e){return a.includes(e)?e:f}export{g as findProvider,j as getModelsGroupedByProvider,P as getProvidersFromModels,x as hasMultipleModelsPerProvider,M as isEntitled,y as isModelAllowedForPlan,p as isRealProvider,A as isReasoningModel,b as resolveQuickAccess,S as resolveResponseSpeed,m as stripAutoWrapper};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let t=/^https:\/\/encrypted-tbn\d\.gstatic\.com\/images\?q=tbn:[\w-]+$/;function e(e){return"string"==typeof e&&t.test(e)}function r(t){return"string"==typeof t&&""!==t.trim()}let n=new Set(['"',"\\","/","b","f","n","r","t","u"]),a={"\n":"\\n","\r":"\\r"," ":"\\t"};function l(t){return t.replace(/\\([\\|[\]])/g,"$1")}function i(t){
|
|
1
|
+
let t=/^https:\/\/encrypted-tbn\d\.gstatic\.com\/images\?q=tbn:[\w-]+$/;function e(e){return"string"==typeof e&&t.test(e)}function r(t){return"string"==typeof t&&""!==t.trim()}let n=new Set(['"',"\\","/","b","f","n","r","t","u"]),a={"\n":"\\n","\r":"\\r"," ":"\\t"};function l(t){return t.replace(/\\([\\|[\]])/g,"$1")}function i(t){let i,u=t.trim();if(!u||u.length>4e4)return null;try{i=function(t){try{return JSON.parse(t)}catch{return JSON.parse(function(t){let e="",r=!1;for(let l=0;l<t.length;l++){let i=t[l];if(r)if("\\"===i){let r=t[l+1]??"";e+=n.has(r)?`\\${r}`:`\\\\${r}`,l++}else'"'===i?(r=!1,e+=i):i<" "?e+=a[i]??`\\u${i.charCodeAt(0).toString(16).padStart(4,"0")}`:e+=i;else r='"'===i,e+=i}return e}(t))}}(u)}catch{return null}if(!i||!r(i.asOf)||!Array.isArray(i.items))return null;let f=new Set,s=i.items.flatMap(t=>{let{id:n,title:a,summary:i,local:u,image:s,evidence:c}=t??{};return!r(n)||f.has(n)||!r(a)||!r(i)?[]:(f.add(n),[{id:n,title:a,summary:i,local:!0===u,...e(s)?{image:s}:{},evidence:function(t){if(!Array.isArray(t))return[];let e=new Set;return t.flatMap(t=>{let{outlet:n,headline:a,url:i}=t??{};return!r(n)||!r(a)||!function(t){if(!r(t))return!1;try{let{protocol:e}=new URL(t);return"http:"===e||"https:"===e}catch{return!1}}(i)||e.has(i)?[]:(e.add(i),[{outlet:l(n),headline:l(a),url:i}])})}(c)}])}),c=i.earlier;return{asOf:i.asOf,...r(i.note)?{note:i.note}:{},...r(i.place)?{place:i.place}:{},...c&&r(c.chatId)&&r(c.time)?{earlier:{chatId:c.chatId,time:c.time}}:{},items:s}}let u=/^[^\S\n]{0,3}```(\w*)[^\S\n]*\n([\s\S]*?)\n[^\S\n]{0,3}```/gm;function f(t){for(let[,e,r]of t.matchAll(u))if("newsbrief"===e.toLowerCase()||""===e&&/"asOf"/.test(r)){let t=i(r);if(t)return t}return null}export{f as findNewsBrief,e as isNewsImageUrl,i as parseNewsBrief};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NEWS_LINKS_PART_TYPE as t}from"../constants/index.js";function r(r){return{type:t,data:{urls:r}}}function n(t){if(!Array.isArray(t))return[];let n=t.filter(t=>"string"==typeof t);return n.length>0?[r(n)]:[]}export{n as newsLinkParts,r as toNewsLinksPart};
|