@versini/sassysaint-common 4.65.0 → 4.66.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.
@@ -0,0 +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",b="balanced",W="thorough",X=[V,b,W],k={[V]:"low",[b]:"medium",[W]:"high"},w={[_]:V,[T]:b,[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";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,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,b as RESPONSE_SPEED_BALANCED,V as RESPONSE_SPEED_FAST,W 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};
@@ -0,0 +1 @@
1
+ let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],i=["identity","bio","constraint","professional"],t=e=>i.includes(e);export{i as HARD_CATEGORIES,e as MEMORY_CATEGORIES,t as isHardCategory};
@@ -0,0 +1 @@
1
+ var e,o=((e={})[e.NewChat=0]="NewChat",e[e.Prompts=1]="Prompts",e[e.Attachment=2]="Attachment",e[e.PrivateChat=3]="PrivateChat",e[e.Send=4]="Send",e[e.Header=5]="Header",e[e.Provider=6]="Provider",e[e.Logo=7]="Logo",e[e.Placeholder=8]="Placeholder",e[e.Footer=9]="Footer",e);export{o as ActionColor};
package/dist/index.d.ts CHANGED
@@ -85,6 +85,7 @@ export declare const CAPABILITIES: {
85
85
  readonly GITREPOSITORY: "getGitRepoDetails";
86
86
  readonly HOTELS: "getHotelDetails";
87
87
  readonly LOCAL_BUSINESSES: "getLocalBusinesses";
88
+ readonly NEWS_BRIEF: "getNewsBrief";
88
89
  readonly PRODUCTS: "getProducts";
89
90
  readonly REVIEW_TRUST: "getReviewTrust";
90
91
  readonly STREAMING_PICKS: "getStreamingPicks";
@@ -240,6 +241,13 @@ export declare const DIGGIDY_CHAT_ID_HEADER = "x-diggidy-chat-id";
240
241
  */
241
242
  export declare const DIGGIDY_CHAT_TIMESTAMP_HEADER = "x-diggidy-chat-timestamp";
242
243
 
244
+ /**
245
+ * The brief in a finished reply: its first ```newsbrief fence, or an unlabeled
246
+ * fence holding the brief's JSON, as the client renders either one. null when
247
+ * the reply has no brief the card could show.
248
+ */
249
+ export declare function findNewsBrief(text: string): NewsBrief | null;
250
+
243
251
  /**
244
252
  * Identifies the AI provider associated with a given model name by matching
245
253
  * against known model prefixes. This function provides backward compatibility
@@ -829,6 +837,30 @@ export declare const MODELS_PER_PROVIDER: {
829
837
  readonly Perplexity: readonly ["sonar", "sonar-pro", "perplexity-search"];
830
838
  };
831
839
 
840
+ export declare interface NewsBrief {
841
+ asOf: string;
842
+ note?: string;
843
+ earlier?: {
844
+ chatId: string;
845
+ time: string;
846
+ };
847
+ items: NewsBriefItem[];
848
+ }
849
+
850
+ export declare interface NewsBriefItem {
851
+ id: string;
852
+ title: string;
853
+ summary: string;
854
+ local: boolean;
855
+ evidence: NewsEvidence[];
856
+ }
857
+
858
+ export declare interface NewsEvidence {
859
+ outlet: string;
860
+ headline: string;
861
+ url: string;
862
+ }
863
+
832
864
  /**
833
865
  * Color class mappings and CSS variables for the theme. Covers both color
834
866
  * schemes at once, via Tailwind `dark:` prefixes inside the class strings.
@@ -838,6 +870,15 @@ export declare interface Palette {
838
870
  cssVariables: CSSVariables;
839
871
  }
840
872
 
873
+ /**
874
+ * Parse the ```newsbrief payload the model writes, for the chat card and the
875
+ * shared page alike, so both show the same stories. Items missing an id, title
876
+ * or summary, repeats of an id, and repeats of an evidence url are dropped
877
+ * rather than failing the brief. null means nothing parseable, which is also
878
+ * the state while the block is still streaming.
879
+ */
880
+ export declare function parseNewsBrief(content: string): NewsBrief | null;
881
+
841
882
  /**
842
883
  * List of all plans available.
843
884
  */
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e=["preference","identity","constraint","habit","bio","device","location","finance","professional","interest","style","behavior","other"],t=["identity","bio","constraint","professional"],E=e=>t.includes(e);var r,n=((r={})[r.NewChat=0]="NewChat",r[r.Prompts=1]="Prompts",r[r.Attachment=2]="Attachment",r[r.PrivateChat=3]="PrivateChat",r[r.Send=4]="Send",r[r.Header=5]="Header",r[r.Provider=6]="Provider",r[r.Logo=7]="Logo",r[r.Placeholder=8]="Placeholder",r[r.Footer=9]="Footer",r);let a="system",i="user",O="assistant",s="OpenAI",o="Anthropic",_="Google",l="Summary",R="Memory",S="Perplexity",T=s,u=[s,o,_],A="gpt-6.1-sol",P="gpt-6-luna",I="claude-opus-5-5",L="claude-sonnet-5-5",c="claude-haiku-5-5",g="gemini-3.8-flash",M="gemini-3.5-flash-lite",h="sonar",N="sonar-pro",d="perplexity-search",D="openai/gpt-oss-20b:free",C="claude-haiku-5-5",p="gpt-6-luna",m="gemini-3.5-flash-lite",U="gemini-3.8-flash",f="gpt-6.1-sol",G="gpt-6-luna",y="gpt-5.6-luna",H="gemini-3.6-flash",b="text-embedding-3-small",w="gpt-image-2.5-sunburst",B=5,F=1e4,Y=3e3,v={[A]:"GPT-6.1 Sol",[P]:"GPT-6 Luna",[I]:"Claude Opus 5.5",[L]:"Claude Sonnet 5.5",[c]:"Claude Haiku 5.5",[g]:"Gemini 3.8 Flash",[M]:"Gemini 3.5 Flash-Lite",[h]:"Sonar",[N]:"Sonar Pro",[d]:"Perplexity Search",[w]:"GPT Image 2.5 Sunburst"},k=[A,P,I,L,c,M,g,w],V=[A,P,I,L,c,g,M],W="fast",X="balanced",x="thorough",K=[W,X,x],z={[W]:"low",[X]:"medium",[x]:"high"},Z={[s]:W,[o]:X,[_]:W},Q="none",$=["settings","shortcuts","memories","history","usage","about"],j={[s]:[A,P],[o]:[I,c,L],[_]:[M,g],[S]:[h,N,d]},q={[s]:[a,i,O],[o]:[i,O],[l]:[i,O],[R]:[i,O],[_]:[i,O],[S]:[i,O]},J={[o]:["claude-opus-5","claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-5","claude-haiku-4","claude-3"],[s]:["gpt-","o3","o4"],[_]:["gemini"],[S]:["sonar"]},ee="x-diggidy-chat-id",et="x-diggidy-chat-timestamp",eE="complete",er="timestamp",en="tokenUsage",ea="Diggidy",ei="sassy:basic",eO="sassy:plus",es="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",LOCAL_BUSINESSES:"getLocalBusinesses",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"}},e_={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.LOCAL_BUSINESSES]:"Searching for local businesses...",[eo.TOOL.PRODUCTS]:"Searching for products...",[eo.TOOL.REVIEW_TRUST]:"Checking reviews...",[eo.TOOL.STREAMING_PICKS]:"Finding movies to stream...",[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...",[eo.TOOL.PAST_CHATS]:"Searching your past chats..."},el="Using tools...",eR=1e5,eS=8e5;function eT(e){return e===es?eS:eR}let eu=16384,eA=4,eP=3,eI=8388608,eL="context-compression-summary",ec="data-urlRead",eg="[Note from the system: you read",eM="(?:an?\\s+|another\\s+)?",eh=RegExp(`^(?:(?:ok(?:ay)?|alright|right|hey|hi|hello|yes|yep|yeah|sure|thanks|thank you|please|claude|diggidy)[\\s,]+)*(?:(?:(?:let'?s\\s+|can you\\s+|could you\\s+|can we\\s+|please\\s+)?(?:start|begin|create|open)\\s+)?${eM}(?:new|fresh)\\s+(?:chat|conversation)|${eM}(?:new|fresh)\\s+(?:thread|session))(?:[\\s,]+(?:please|pls|plz|now|thanks|thank you|thx|ty))*$`),eN=/^[^\p{L}\p{N}]+/u,ed=/[^\p{L}\p{N}]+$/u;function eD(e){if(!e||e.length>120)return!1;let t=e.toLowerCase().replace(/’/g,"'").replace(/\s+/g," ").trim().replace(eN,"").replace(ed,"").trim();return""!==t&&eh.test(t)}function eC(e){return{type:ec,data:e}}function ep(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e?.url).map(e=>eC({url:e.url,partial:!1!==e.partial})):[]}let em=new Set(["OpenAI",o,"Google"]);function eU(e){return"string"==typeof e&&em.has(e)}let ef=/^auto \((.+)\)$/;function eG(e){let t=e.match(ef);return t?t[1]:e}let ey=e=>{for(let[t,E]of Object.entries(J))if(E.some(t=>e.startsWith(t)))return t;return null},eH=/image|embedding|tts|realtime|transcribe|audio/;function eb(e,{matchUnknownByPrefix:t=!1}){for(let[t,E]of Object.entries(j))if(E.includes(e))return eU(t)?t:null;if(!t||k.includes(e)||eH.test(e))return null;let E=ey(e);return eU(E)?E:null}let ew=(e,t={})=>{if(!e||0===e.length)return[];let E=new Set;for(let r of e){let e=eb(r,t);e&&E.add(e)}return u.filter(e=>E.has(e))},eB=(e,t={})=>{let E=new Map;if(!e||0===e.length)return E;for(let r of e){let e=eb(r,t);e&&(E.has(e)||E.set(e,[]),E.get(e)?.push(r))}return E},eF=(e,t={})=>{for(let E of eB(e,t).values())if(E.length>1)return!0;return!1},eY=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function ev(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 ek(e){return V.includes(e)}function eV(e){let t=t=>{let E=e?.[t];return K.includes(E)?E:Z[t]};return{OpenAI:t("OpenAI"),[o]:t(o),Google:t("Google")}}function eW(e){return $.includes(e)?e:"none"}export{k as ALL_MODELS,u as ALL_PROVIDERS,V as ALL_REASONING_MODELS,ea as APPLICATION_NAME,J as APPROXIMATE_MODELS_PER_PROVIDER,eo as CAPABILITIES,eE as CHAT_COMPLETION_MARKER_KEY,eR as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,eS as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,eP as CONTEXT_COMPRESSION_KEEP_IMAGES,eA as CONTEXT_COMPRESSION_KEEP_RECENT,eI as CONTEXT_COMPRESSION_MAX_DOCUMENT_BYTES,eL as CONTEXT_COMPRESSION_SUMMARY_ID,T as DEFAULT_PROVIDER,Z as DEFAULT_RESPONSE_SPEED,el as DEFAULT_TOOL_LOADING_LABEL,ee as DIGGIDY_CHAT_ID_HEADER,et as DIGGIDY_CHAT_TIMESTAMP_HEADER,t as HARD_CATEGORIES,eu as MAX_OUTPUT_TOKENS,B as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,j as MODELS_PER_PROVIDER,c as MODEL_ANTHROPIC_LOW,L as MODEL_ANTHROPIC_MEDIUM,I as MODEL_ANTHROPIC_TOP,p as MODEL_CHAT_SUMMARY,D as MODEL_DEV,v as MODEL_DISPLAY_NAMES,b as MODEL_EMBEDDING_TEXT,w as MODEL_GENERATE_IMAGE,M as MODEL_GOOGLE_MEDIUM,g as MODEL_GOOGLE_TOP,f as MODEL_HUMANIZE_AUDIT,U as MODEL_HUMANIZE_REWRITE,C as MODEL_MEMORY_INFERENCE,G as MODEL_NUTRITION_SEARCH,P as MODEL_OPENAI_MEDIUM,A as MODEL_OPENAI_TOP,d as MODEL_PERPLEXITY_SEARCH,y as MODEL_REVIEW_TRUST_PANEL,H as MODEL_REVIEW_TRUST_PANEL_GOOGLE,m as MODEL_SEARCH_DECOMPOSER,h as MODEL_SONAR,N as MODEL_SONAR_PRO,ei as PLAN_BASIC,eO as PLAN_PLUS,es as PLAN_PREMIUM,o as PROVIDER_ANTHROPIC,_ as PROVIDER_GOOGLE,R as PROVIDER_MEMORY,s as PROVIDER_OPENAI,S as PROVIDER_PERPLEXITY,q as PROVIDER_ROLE_MAP,l as PROVIDER_SUMMARY,Q as QUICK_ACCESS_NONE,$ as QUICK_ACCESS_PANELS,K as RESPONSE_SPEEDS,X as RESPONSE_SPEED_BALANCED,W as RESPONSE_SPEED_FAST,x as RESPONSE_SPEED_THOROUGH,z as RESPONSE_SPEED_TO_EFFORT,O as ROLE_ASSISTANT,a as ROLE_SYSTEM,i as ROLE_USER,Y as SEARCH_DECOMPOSE_TIMEOUT_MS,F as SEARCH_QUERY_TIMEOUT_MS,er as SORT_BY_TIMESTAMP,en as SORT_BY_TOKEN_USAGE,e_ as TOOL_LOADING_LABELS,eg as URL_READ_NOTE_PREFIX,ec as URL_READ_PART_TYPE,ey as findProvider,eT as getCompressionEmergencyThreshold,eB as getModelsGroupedByProvider,ew as getProvidersFromModels,eF as hasMultipleModelsPerProvider,ev as isEntitled,eD as isExplicitNewChatRequest,E as isHardCategory,eY as isModelAllowedForPlan,eU as isRealProvider,ek as isReasoningModel,ep as readUrlParts,eW as resolveQuickAccess,eV as resolveResponseSpeed,eG as stripAutoWrapper,n as ActionColor,eC as toUrlReadPart};
1
+ export*from"./constants/index.js";export*from"./utilities/index.js";
@@ -0,0 +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 s,PROVIDER_ANTHROPIC as o,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"./newChatRequest.js";export*from"./newsBrief.js";export*from"./readUrlParts.js";let c=new Set([u,o,i]);function h(e){return"string"==typeof e&&c.has(e)}let p=/^auto \((.+)\)$/;function g(e){let t=e.match(p);return t?t[1]:e}let m=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 P(t,{matchUnknownByPrefix:r=!1}){for(let[e,r]of Object.entries(s))if(r.includes(t))return h(e)?e:null;if(!r||e.includes(t)||v.test(t))return null;let n=m(t);return h(n)?n:null}let w=(e,r={})=>{if(!e||0===e.length)return[];let n=new Set;for(let t of e){let e=P(t,r);e&&n.add(e)}return t.filter(e=>n.has(e))},y=(e,t={})=>{let r=new Map;if(!e||0===e.length)return r;for(let n of e){let e=P(n,t);e&&(r.has(e)||r.set(e,[]),r.get(e)?.push(n))}return r},M=(e,t={})=>{for(let r of y(e,t).values())if(r.length>1)return!0;return!1},j=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function x(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),[o]:t(o),[i]:t(i)}}function b(e){return a.includes(e)?e:f}export{m as findProvider,y as getModelsGroupedByProvider,w as getProvidersFromModels,M as hasMultipleModelsPerProvider,x as isEntitled,j as isModelAllowedForPlan,h as isRealProvider,A as isReasoningModel,b as resolveQuickAccess,S as resolveResponseSpeed,g as stripAutoWrapper};
@@ -0,0 +1 @@
1
+ let e="(?:an?\\s+|another\\s+)?",s=RegExp(`^(?:(?:ok(?:ay)?|alright|right|hey|hi|hello|yes|yep|yeah|sure|thanks|thank you|please|claude|diggidy)[\\s,]+)*(?:(?:(?:let'?s\\s+|can you\\s+|could you\\s+|can we\\s+|please\\s+)?(?:start|begin|create|open)\\s+)?${e}(?:new|fresh)\\s+(?:chat|conversation)|${e}(?:new|fresh)\\s+(?:thread|session))(?:[\\s,]+(?:please|pls|plz|now|thanks|thank you|thx|ty))*$`),t=/^[^\p{L}\p{N}]+/u,a=/[^\p{L}\p{N}]+$/u;function r(e){if(!e||e.length>120)return!1;let r=e.toLowerCase().replace(/’/g,"'").replace(/\s+/g," ").trim().replace(t,"").replace(a,"").trim();return""!==r&&s.test(r)}export{r as isExplicitNewChatRequest};
@@ -0,0 +1 @@
1
+ function t(t){return"string"==typeof t&&""!==t.trim()}let e=new Set(['"',"\\","/","b","f","n","r","t","u"]),r={"\n":"\\n","\r":"\\r"," ":"\\t"};function n(t){return t.replace(/\\([\\|[\]])/g,"$1")}function l(l){let a,i=l.trim();if(!i||i.length>4e4)return null;try{a=function(t){try{return JSON.parse(t)}catch{return JSON.parse(function(t){let n="",l=!1;for(let a=0;a<t.length;a++){let i=t[a];if(l)if("\\"===i){let r=t[a+1]??"";n+=e.has(r)?`\\${r}`:`\\\\${r}`,a++}else'"'===i?(l=!1,n+=i):i<" "?n+=r[i]??`\\u${i.charCodeAt(0).toString(16).padStart(4,"0")}`:n+=i;else l='"'===i,n+=i}return n}(t))}}(i)}catch{return null}if(!a||!t(a.asOf)||!Array.isArray(a.items))return null;let u=new Set,f=a.items.flatMap(e=>{let{id:r,title:l,summary:a,local:i,evidence:f}=e??{};return!t(r)||u.has(r)||!t(l)||!t(a)?[]:(u.add(r),[{id:r,title:l,summary:a,local:!0===i,evidence:function(e){if(!Array.isArray(e))return[];let r=new Set;return e.flatMap(e=>{let{outlet:l,headline:a,url:i}=e??{};return!t(l)||!t(a)||!function(e){if(!t(e))return!1;try{let{protocol:t}=new URL(e);return"http:"===t||"https:"===t}catch{return!1}}(i)||r.has(i)?[]:(r.add(i),[{outlet:n(l),headline:n(a),url:i}])})}(f)}])}),s=a.earlier;return{asOf:a.asOf,...t(a.note)?{note:a.note}:{},...s&&t(s.chatId)&&t(s.time)?{earlier:{chatId:s.chatId,time:s.time}}:{},items:f}}let a=/^[^\S\n]{0,3}```(\w*)[^\S\n]*\n([\s\S]*?)\n[^\S\n]{0,3}```/gm;function i(t){for(let[,e,r]of t.matchAll(a))if("newsbrief"===e.toLowerCase()||""===e&&/"asOf"/.test(r)){let t=l(r);if(t)return t}return null}export{i as findNewsBrief,l as parseNewsBrief};
@@ -0,0 +1 @@
1
+ import{URL_READ_PART_TYPE as r}from"../constants/index.js";function t(t){return{type:r,data:t}}function a(r){return Array.isArray(r)?r.filter(r=>"string"==typeof r?.url).map(r=>t({url:r.url,partial:!1!==r.partial})):[]}export{a as readUrlParts,t as toUrlReadPart};
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@versini/sassysaint-common",
3
- "version": "4.65.0",
3
+ "version": "4.66.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
9
  "type": "module",
10
+ "sideEffects": false,
10
11
  "main": "dist/index.js",
11
12
  "types": "dist/index.d.ts",
12
13
  "files": [