@versini/sassysaint-common 4.48.0 → 4.48.2
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 +28 -17
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -56,7 +56,6 @@ export declare const APPROXIMATE_MODELS_PER_PROVIDER: {
|
|
|
56
56
|
readonly OpenAI: readonly ["gpt-", "o3", "o4"];
|
|
57
57
|
readonly Google: readonly ["gemini"];
|
|
58
58
|
readonly Perplexity: readonly ["sonar"];
|
|
59
|
-
readonly Mistral: readonly ["mistral"];
|
|
60
59
|
};
|
|
61
60
|
|
|
62
61
|
/**
|
|
@@ -207,7 +206,7 @@ export declare const DIGGIDY_CHAT_TIMESTAMP_HEADER = "x-diggidy-chat-timestamp";
|
|
|
207
206
|
* ```
|
|
208
207
|
*
|
|
209
208
|
*/
|
|
210
|
-
export declare const findProvider: (modelName: string) => null | typeof PROVIDER_ANTHROPIC | typeof
|
|
209
|
+
export declare const findProvider: (modelName: string) => null | typeof PROVIDER_ANTHROPIC | typeof PROVIDER_OPENAI | typeof PROVIDER_GOOGLE;
|
|
211
210
|
|
|
212
211
|
/**
|
|
213
212
|
* Resolve the emergency compression floor for a plan. Premium gets the high
|
|
@@ -521,6 +520,15 @@ export declare const MODEL_GOOGLE_MEDIUM = "gemini-3.5-flash-lite";
|
|
|
521
520
|
|
|
522
521
|
export declare const MODEL_GOOGLE_TOP = "gemini-3.6-flash";
|
|
523
522
|
|
|
523
|
+
/**
|
|
524
|
+
* The humanizer's audit pass deliberately runs on a different model FAMILY than
|
|
525
|
+
* its rewrite pass, so the two-pass output carries no single-model token
|
|
526
|
+
* distribution for detectors to fingerprint; it also wants a reasoning-grade
|
|
527
|
+
* model for the careful, analytical edits it makes. Pinned rather than
|
|
528
|
+
* borrowing the OpenAI top tier, whose value moves on every catalog bump.
|
|
529
|
+
*/
|
|
530
|
+
export declare const MODEL_HUMANIZE_AUDIT = "gpt-5.6-terra";
|
|
531
|
+
|
|
524
532
|
/**
|
|
525
533
|
* The humanizer's rewrite pass needs a model that supports a high temperature
|
|
526
534
|
* and is fast; the Lite tier is too weak for it. It gets its own slot rather
|
|
@@ -537,6 +545,13 @@ export declare const MODEL_HUMANIZE_REWRITE = "gemini-3.6-flash";
|
|
|
537
545
|
*/
|
|
538
546
|
export declare const MODEL_MEMORY_INFERENCE = "gpt-5.4-mini";
|
|
539
547
|
|
|
548
|
+
/**
|
|
549
|
+
* The nutrition fallback runs a web-search-tool lookup for branded products FDC
|
|
550
|
+
* does not carry. It needs a mid-grade model with native web search, not
|
|
551
|
+
* whatever the OpenAI mid tier happens to point at.
|
|
552
|
+
*/
|
|
553
|
+
export declare const MODEL_NUTRITION_SEARCH = "gpt-5.4-mini";
|
|
554
|
+
|
|
540
555
|
export declare const MODEL_OPENAI_LOW = "gpt-5.4-nano";
|
|
541
556
|
|
|
542
557
|
export declare const MODEL_OPENAI_MEDIUM = "gpt-5.4-mini";
|
|
@@ -555,10 +570,11 @@ export declare const MODEL_OPENAI_MEDIUM = "gpt-5.4-mini";
|
|
|
555
570
|
* Two deliberate exceptions follow the catalog: the Perplexity ids are legacy
|
|
556
571
|
* and not user-selectable, and the role-purpose slots (MODEL_MEMORY_INFERENCE,
|
|
557
572
|
* MODEL_CHAT_SUMMARY, MODEL_SEARCH_DECOMPOSER, MODEL_HUMANIZE_REWRITE,
|
|
558
|
-
*
|
|
559
|
-
* named for the job they do rather than a
|
|
560
|
-
* renames them either. Anything that needs
|
|
561
|
-
* belongs in that group, NOT pointed at a
|
|
573
|
+
* MODEL_HUMANIZE_AUDIT, MODEL_NUTRITION_SEARCH, MODEL_EMBEDDING_TEXT,
|
|
574
|
+
* MODEL_GENERATE_IMAGE, MODEL_DEV) are named for the job they do rather than a
|
|
575
|
+
* provider tier, so a bump there never renames them either. Anything that needs
|
|
576
|
+
* a specific model for a specific job belongs in that group, NOT pointed at a
|
|
577
|
+
* picker tier whose value can move.
|
|
562
578
|
*
|
|
563
579
|
*/
|
|
564
580
|
export declare const MODEL_OPENAI_TOP = "gpt-5.6-terra";
|
|
@@ -579,16 +595,14 @@ export declare const MODEL_SONAR = "sonar";
|
|
|
579
595
|
|
|
580
596
|
export declare const MODEL_SONAR_PRO = "sonar-pro";
|
|
581
597
|
|
|
582
|
-
export declare const MODEL_TEACHER = "mistral-large-latest";
|
|
583
|
-
|
|
584
598
|
/**
|
|
585
599
|
* List of models available according to the providers.
|
|
586
600
|
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
589
|
-
*
|
|
590
|
-
*
|
|
591
|
-
*
|
|
601
|
+
* Order is NOT sorted by tier (Google lists MEDIUM first, Anthropic lists LOW
|
|
602
|
+
* before MEDIUM) but is no longer load-bearing: index [0] used to be the
|
|
603
|
+
* per-provider fallback default in getModelNameForPlan (server providers.ts),
|
|
604
|
+
* which fell open and served it to plans entitled to none of the provider's
|
|
605
|
+
* models. Model choice now comes from the plan's own allowedModels order.
|
|
592
606
|
*
|
|
593
607
|
*/
|
|
594
608
|
export declare const MODELS_PER_PROVIDER: {
|
|
@@ -622,8 +636,6 @@ export declare const PROVIDER_GOOGLE = "Google";
|
|
|
622
636
|
|
|
623
637
|
export declare const PROVIDER_MEMORY = "Memory";
|
|
624
638
|
|
|
625
|
-
export declare const PROVIDER_MISTRAL = "Mistral";
|
|
626
|
-
|
|
627
639
|
/**
|
|
628
640
|
* List of available providers.
|
|
629
641
|
*/
|
|
@@ -641,7 +653,6 @@ export declare const PROVIDER_ROLE_MAP: {
|
|
|
641
653
|
Memory: string[];
|
|
642
654
|
Google: string[];
|
|
643
655
|
Perplexity: string[];
|
|
644
|
-
Mistral: string[];
|
|
645
656
|
};
|
|
646
657
|
|
|
647
658
|
export declare const PROVIDER_SUMMARY = "Summary";
|
|
@@ -652,7 +663,7 @@ export declare const PROVIDER_SUMMARY = "Summary";
|
|
|
652
663
|
* `PROVIDER_ROLE_MAP`, or provider-branched logic. Runtime guards
|
|
653
664
|
* (`isRealProvider`) stay as backup for any `as any` escape hatches.
|
|
654
665
|
*/
|
|
655
|
-
export declare type RealProvider = typeof PROVIDER_OPENAI | typeof PROVIDER_ANTHROPIC | typeof PROVIDER_GOOGLE
|
|
666
|
+
export declare type RealProvider = typeof PROVIDER_OPENAI | typeof PROVIDER_ANTHROPIC | typeof PROVIDER_GOOGLE;
|
|
656
667
|
|
|
657
668
|
export declare const ROLE_ASSISTANT = "assistant";
|
|
658
669
|
|
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 O,n=((O={})[O.NewChat=0]="NewChat",O[O.Prompts=1]="Prompts",O[O.Attachment=2]="Attachment",O[O.PrivateChat=3]="PrivateChat",O[O.Send=4]="Send",O[O.Header=5]="Header",O[O.Provider=6]="Provider",O[O.Logo=7]="Logo",O[O.Placeholder=8]="Placeholder",O[O.Footer=9]="Footer",O);let r="system",i="user",o="assistant",a="OpenAI",_="Anthropic",R="Google",
|
|
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 O,n=((O={})[O.NewChat=0]="NewChat",O[O.Prompts=1]="Prompts",O[O.Attachment=2]="Attachment",O[O.PrivateChat=3]="PrivateChat",O[O.Send=4]="Send",O[O.Header=5]="Header",O[O.Provider=6]="Provider",O[O.Logo=7]="Logo",O[O.Placeholder=8]="Placeholder",O[O.Footer=9]="Footer",O);let r="system",i="user",o="assistant",a="OpenAI",_="Anthropic",R="Google",T="Summary",s="Memory",A="Perplexity",I=a,M=[a,_,R],l="gpt-5.6-terra",L="gpt-5.4-mini",S="gpt-5.4-nano",P="claude-opus-4-8",g="claude-sonnet-5",N="claude-haiku-4-5",D="gemini-3.6-flash",d="gemini-3.5-flash-lite",c="sonar",u="sonar-pro",C="perplexity-search",h="openai/gpt-oss-20b:free",p="gpt-5.4-mini",m="gpt-5.4-nano",G="gpt-5.4-mini",H="gemini-3.6-flash",f="gpt-5.6-terra",U="gpt-5.4-mini",y="text-embedding-3-small",Y="gemini-3-pro-image",B=5,b=1e4,F={[l]:"GPT-5.6 Terra",[L]:"GPT-5.4 Mini",[S]:"GPT-5.4 Nano",[P]:"Claude Opus 4.8",[g]:"Claude Sonnet 5",[N]:"Claude Haiku 4.5",[D]:"Gemini 3.6 Flash",[d]:"Gemini 3.5 Flash-Lite",[c]:"Sonar",[u]:"Sonar Pro",[C]:"Perplexity Search",[Y]:"Nano Banana 3 Pro"},v=[l,L,S,P,g,N,d,D,Y],w=[l,L,S,P,g,D,d],V={[a]:[l,L,S],[_]:[P,N,g],[R]:[d,D],[A]:[c,u,C]},X={[a]:[r,i,o],[_]:[i,o],[T]:[i,o],[s]:[i,o],[R]:[i,o],[A]:[i,o]},W={[_]:["claude-opus-4","claude-sonnet-5","claude-sonnet-4","claude-haiku-4","claude-3"],[a]:["gpt-","o3","o4"],[R]:["gemini"],[A]:["sonar"]},x="x-diggidy-chat-id",k="x-diggidy-chat-timestamp",K="complete",Z="timestamp",z="tokenUsage",j="Diggidy",Q="sassy:basic",$="sassy:plus",q="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",CODEINTERPRETER:"addon:codeinterpreter",SHARE_CHAT:"addon:share-chat"}},ee={code_interpreter:"Running code...",web_search:"Searching the web...",[J.TOOL.WEATHER]:"Checking the weather...",[J.TOOL.POLLUTION]:"Fetching air pollution data...",[J.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[J.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[J.TOOL.WEBSEARCH]:"Searching the web...",[J.TOOL.GITREPOSITORY]:"Looking up repository...",[J.TOOL.HOTELS]:"Searching for hotels...",[J.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[J.TOOL.GENERATE_IMAGE]:"Generating image...",[J.TOOL.BARCODE]:"Looking up product...",[J.TOOL.PRONUNCIATION]:"Generating pronunciation...",[J.TOOL.HUMANIZE]:"Rewriting text...",[J.TOOL.IMAGES]:"Searching for images..."},et="Using tools...",eE=5e4,eO=1e5,en=8e5;function er(e){return e===q?en:eO}let ei=16384,eo=4,ea=3,e_="context-compression-summary",eR=new Set(["OpenAI",_,"Google"]);function eT(e){return"string"==typeof e&&eR.has(e)}let es=/^auto \((.+)\)$/;function eA(e){let t=e.match(es);return t?t[1]:e}let eI=e=>{for(let[t,E]of Object.entries(W))if(E.some(t=>e.startsWith(t)))return t;return null},eM=e=>{if(!e||0===e.length)return[];let t=new Set;for(let E of e)for(let[e,O]of Object.entries(V))O.includes(E)&&("OpenAI"===e||e===_||"Google"===e)&&t.add(e);return M.filter(e=>t.has(e))},el=e=>{let t=new Map;if(!e||0===e.length)return t;for(let E of e)for(let[e,O]of Object.entries(V))if(O.includes(E)){t.has(e)||t.set(e,[]),t.get(e)?.push(E);break}return t},eL=e=>{for(let t of el(e).values())if(t.length>1)return!0;return!1},eS=(e,t)=>!!e&&!!t&&0!==t.length&&t.includes(e);function eP(e,t,E){if(!t||Array.isArray(t)&&0===t.length)return!0;let O=e instanceof Set?e:e?new Set(e):null;return!!O&&0!==O.size&&("string"==typeof t?O.has(t):E?.any===!0?t.some(e=>O.has(e)):t.every(e=>O.has(e)))}function eg(e){return w.includes(e)}export{v as ALL_MODELS,M as ALL_PROVIDERS,w as ALL_REASONING_MODELS,j as APPLICATION_NAME,W as APPROXIMATE_MODELS_PER_PROVIDER,J as CAPABILITIES,K as CHAT_COMPLETION_MARKER_KEY,eO as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD,en as CONTEXT_COMPRESSION_EMERGENCY_THRESHOLD_PREMIUM,ea as CONTEXT_COMPRESSION_KEEP_IMAGES,eo as CONTEXT_COMPRESSION_KEEP_RECENT,e_ as CONTEXT_COMPRESSION_SUMMARY_ID,eE as CONTEXT_COMPRESSION_THRESHOLD,I as DEFAULT_PROVIDER,et as DEFAULT_TOOL_LOADING_LABEL,x as DIGGIDY_CHAT_ID_HEADER,k as DIGGIDY_CHAT_TIMESTAMP_HEADER,t as HARD_CATEGORIES,ei as MAX_OUTPUT_TOKENS,B as MAX_SEARCH_QUERIES,e as MEMORY_CATEGORIES,V as MODELS_PER_PROVIDER,N as MODEL_ANTHROPIC_LOW,g as MODEL_ANTHROPIC_MEDIUM,P as MODEL_ANTHROPIC_TOP,m as MODEL_CHAT_SUMMARY,h as MODEL_DEV,F as MODEL_DISPLAY_NAMES,y as MODEL_EMBEDDING_TEXT,Y as MODEL_GENERATE_IMAGE,d as MODEL_GOOGLE_MEDIUM,D as MODEL_GOOGLE_TOP,f as MODEL_HUMANIZE_AUDIT,H as MODEL_HUMANIZE_REWRITE,p as MODEL_MEMORY_INFERENCE,U as MODEL_NUTRITION_SEARCH,S as MODEL_OPENAI_LOW,L as MODEL_OPENAI_MEDIUM,l as MODEL_OPENAI_TOP,C as MODEL_PERPLEXITY_SEARCH,G as MODEL_SEARCH_DECOMPOSER,c as MODEL_SONAR,u as MODEL_SONAR_PRO,Q as PLAN_BASIC,$ as PLAN_PLUS,q as PLAN_PREMIUM,_ as PROVIDER_ANTHROPIC,R as PROVIDER_GOOGLE,s as PROVIDER_MEMORY,a as PROVIDER_OPENAI,A as PROVIDER_PERPLEXITY,X as PROVIDER_ROLE_MAP,T as PROVIDER_SUMMARY,o as ROLE_ASSISTANT,r as ROLE_SYSTEM,i as ROLE_USER,b as SEARCH_QUERY_TIMEOUT_MS,Z as SORT_BY_TIMESTAMP,z as SORT_BY_TOKEN_USAGE,ee as TOOL_LOADING_LABELS,eI as findProvider,er as getCompressionEmergencyThreshold,el as getModelsGroupedByProvider,eM as getProvidersFromModels,eL as hasMultipleModelsPerProvider,eP as isEntitled,E as isHardCategory,eS as isModelAllowedForPlan,eT as isRealProvider,eg as isReasoningModel,eA as stripAutoWrapper,n as ActionColor};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versini/sassysaint-common",
|
|
3
|
-
"version": "4.48.
|
|
3
|
+
"version": "4.48.2",
|
|
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": "
|
|
35
|
+
"gitHead": "57e3767249413170e3ede4be10c7fa6adc8c3837"
|
|
36
36
|
}
|