@versini/sassysaint-common 4.37.1 → 4.39.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 +26 -9
- package/dist/index.js +1 -1
- package/package.json +2 -2
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-
|
|
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"];
|
|
24
24
|
|
|
25
25
|
export declare const ALL_PROVIDERS: readonly ["OpenAI", "Anthropic", "Google"];
|
|
26
26
|
|
|
@@ -93,6 +93,16 @@ export declare type CapabilityInput = string | readonly string[];
|
|
|
93
93
|
*/
|
|
94
94
|
export declare type ColorMap = Partial<Record<ActionColor, string>>;
|
|
95
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Maximum number of the most recent images carried forward when older messages
|
|
98
|
+
* are compressed into a text summary. Compression flattens older turns into
|
|
99
|
+
* image-blind text; without this the original upload and every previously
|
|
100
|
+
* generated image would silently vanish from what the model can see, breaking
|
|
101
|
+
* iterative image editing and vision follow-ups. Bounded so a few images don't
|
|
102
|
+
* defeat the token savings compression exists to provide.
|
|
103
|
+
*/
|
|
104
|
+
export declare const CONTEXT_COMPRESSION_KEEP_IMAGES = 3;
|
|
105
|
+
|
|
96
106
|
/**
|
|
97
107
|
* Number of recent messages to keep intact during compression (two
|
|
98
108
|
* user-assistant exchanges). Ensures the model has enough immediate
|
|
@@ -217,11 +227,11 @@ export declare const getModelsGroupedByProvider: (models: string[]) => Map<strin
|
|
|
217
227
|
* @example
|
|
218
228
|
* ```ts
|
|
219
229
|
* // User's plan includes GPT and Claude models:
|
|
220
|
-
* getProvidersFromModels([
|
|
230
|
+
* getProvidersFromModels([MODEL_GPT5_NANO, MODEL_CLAUDE_HAIKU]);
|
|
221
231
|
* // Returns: [PROVIDER_OPENAI, PROVIDER_ANTHROPIC]
|
|
222
232
|
*
|
|
223
233
|
* // Gemini models removed from plan:
|
|
224
|
-
* getProvidersFromModels([
|
|
234
|
+
* getProvidersFromModels([MODEL_GPT5_NANO, MODEL_CLAUDE_HAIKU]);
|
|
225
235
|
* // Returns: [PROVIDER_OPENAI, PROVIDER_ANTHROPIC]
|
|
226
236
|
* // (PROVIDER_GOOGLE is excluded)
|
|
227
237
|
*
|
|
@@ -371,6 +381,15 @@ declare interface IsEntitledOptions {
|
|
|
371
381
|
*/
|
|
372
382
|
export declare const isModelAllowedForPlan: (selectedModel: string | undefined | null, allowedModels: string[]) => boolean;
|
|
373
383
|
|
|
384
|
+
/**
|
|
385
|
+
* Runtime guard: true only for a real, SDK-instantiable provider literal.
|
|
386
|
+
* Returns false for PROVIDER_AUTO, undefined, null, and anything else. Shared
|
|
387
|
+
* by the Auto-router resolver (server) and the provider picker (client) so both
|
|
388
|
+
* agree on what counts as a real, selectable provider — and so neither lets the
|
|
389
|
+
* "Auto" pseudo-value leak into enum-keyed lookups.
|
|
390
|
+
*/
|
|
391
|
+
export declare function isRealProvider(value: unknown): value is RealProvider;
|
|
392
|
+
|
|
374
393
|
/**
|
|
375
394
|
* Checks if a given model is classified as a reasoning-capable model. This
|
|
376
395
|
* function is used to determine if advanced reasoning features should be
|
|
@@ -414,7 +433,7 @@ export declare const MODEL_CHAT_SUMMARY = "gpt-5.4-nano";
|
|
|
414
433
|
|
|
415
434
|
export declare const MODEL_CLAUDE_HAIKU = "claude-haiku-4-5";
|
|
416
435
|
|
|
417
|
-
export declare const MODEL_CLAUDE_OPUS = "claude-opus-4-
|
|
436
|
+
export declare const MODEL_CLAUDE_OPUS = "claude-opus-4-8";
|
|
418
437
|
|
|
419
438
|
export declare const MODEL_CLAUDE_SONNET = "claude-sonnet-4-6";
|
|
420
439
|
|
|
@@ -432,9 +451,7 @@ export declare const MODEL_GEMINI_FLASH = "gemini-3-flash-preview";
|
|
|
432
451
|
|
|
433
452
|
export declare const MODEL_GEMINI_PRO = "gemini-3.1-pro-preview";
|
|
434
453
|
|
|
435
|
-
export declare const MODEL_GENERATE_IMAGE = "gemini-3-pro-image
|
|
436
|
-
|
|
437
|
-
export declare const MODEL_GPT4_NANO = "gpt-4.1-nano";
|
|
454
|
+
export declare const MODEL_GENERATE_IMAGE = "gemini-3-pro-image";
|
|
438
455
|
|
|
439
456
|
/**
|
|
440
457
|
* List of available models TODAY.
|
|
@@ -459,8 +476,8 @@ export declare const MODEL_TEACHER = "mistral-large-latest";
|
|
|
459
476
|
* List of models available according to the providers.
|
|
460
477
|
*/
|
|
461
478
|
export declare const MODELS_PER_PROVIDER: {
|
|
462
|
-
readonly OpenAI: readonly ["gpt-
|
|
463
|
-
readonly Anthropic: readonly ["claude-opus-4-
|
|
479
|
+
readonly OpenAI: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
|
|
480
|
+
readonly Anthropic: readonly ["claude-opus-4-8", "claude-haiku-4-5", "claude-sonnet-4-6"];
|
|
464
481
|
readonly Google: readonly ["gemini-3-flash-preview", "gemini-3.1-pro-preview"];
|
|
465
482
|
readonly Perplexity: readonly ["sonar", "sonar-pro"];
|
|
466
483
|
};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,
|
|
1
|
+
var e,E=((e={})[e.NewChat=0]="NewChat",e[e.Prompts=1]="Prompts",e[e.Attachment=2]="Attachment",e[e.PrivateChat=3]="PrivateChat",e[e.Reasoning=4]="Reasoning",e[e.Send=5]="Send",e[e.Header=6]="Header",e[e.Provider=7]="Provider",e[e.Logo=8]="Logo",e[e.Placeholder=9]="Placeholder",e[e.Footer=10]="Footer",e);let O="user",t="assistant",r="OpenAI",n="Anthropic",_="Google",a="Summary",o="Perplexity",R="Mistral",i=[r,n,_],s="gpt-5.4",T="gpt-5.4-mini",A="gpt-5.4-nano",I="claude-opus-4-8",S="claude-sonnet-4-6",M="claude-haiku-4-5",L="gemini-3-flash-preview",P="gemini-3.1-pro-preview",l="sonar",N="sonar-pro",g="openai/gpt-oss-20b:free",D="mistral-large-latest",c="gpt-5.4-nano",d="gpt-5.4-nano",u="gpt-5.4-mini",C="text-embedding-3-small",h="gemini-3-pro-image",U=A,p=M,G=L,m={[s]:"GPT-5.4",[T]:"GPT-5.4 Mini",[A]:"GPT-5.4 Nano",[I]:"Claude Opus 4.8",[S]:"Claude Sonnet 4.6",[M]:"Claude Haiku 4.5",[P]:"Gemini 3.1 Pro",[L]:"Gemini 3 Flash",[l]:"Sonar",[N]:"Sonar Pro",[h]:"Nano Banana 3 Pro",[D]:"Mistral Large"},H=[s,T,A,I,S,M,L,P,h],f=[s,T,A,I,S,P],y={[r]:[s,T,A],[n]:[I,M,S],[_]:[L,P],[o]:[l,N]},V={[r]:["system",O,t],[n]:[O,t],[a]:[O,t],Memory:[O,t],[_]:[O,t],[o]:[O,t],[R]:[O,t]},B={[n]:["claude-opus-4","claude-sonnet-4","claude-haiku-4","claude-3"],[r]:["gpt-","o3","o4"],[_]:["gemini"],[o]:["sonar"],[R]:["mistral"]},Y="x-diggidy-chat-id",F="x-diggidy-chat-timestamp",v="timestamp",w="tokenUsage",X="Diggidy",b="sassy:basic",k="sassy:plus",K="sassy:advanced",x={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"}},W={code_interpreter:"Running code...",web_search:"Searching the web...",[x.TOOL.WEATHER]:"Checking the weather...",[x.TOOL.POLLUTION]:"Fetching air pollution data...",[x.TOOL.BUNDLESIZE]:"Analyzing bundle size...",[x.TOOL.URLCONTENTPARSER]:"Reading a webpage...",[x.TOOL.WEBSEARCH]:"Searching the web...",[x.TOOL.GITREPOSITORY]:"Looking up repository...",[x.TOOL.HOTELS]:"Searching for hotels...",[x.TOOL.NUTRITION_FACTS]:"Fetching nutrition facts...",[x.TOOL.GENERATE_IMAGE]:"Generating image...",[x.TOOL.BARCODE]:"Looking up product...",[x.TOOL.PRONUNCIATION]:"Generating pronunciation...",[x.TOOL.HUMANIZE]:"Rewriting text...",[x.TOOL.IMAGES]:"Searching for images..."},z="Using tools...",Q="context-compression-summary",Z=new Set(["OpenAI",n,"Google",R]);function j(e){return"string"==typeof e&&Z.has(e)}let q=e=>{for(let[E,O]of Object.entries(B))if(O.some(E=>e.startsWith(E)))return E;return null},J=e=>{if(!e||0===e.length)return[];let E=new Set;for(let O of e)for(let[e,t]of Object.entries(y))t.includes(O)&&("OpenAI"===e||e===n||"Google"===e)&&E.add(e);return i.filter(e=>E.has(e))},$=e=>{let E=new Map;if(!e||0===e.length)return E;for(let O of e)for(let[e,t]of Object.entries(y))if(t.includes(O)){E.has(e)||E.set(e,[]),E.get(e)?.push(O);break}return E},ee=e=>{for(let E of $(e).values())if(E.length>1)return!0;return!1},eE=(e,E)=>!!e&&!!E&&0!==E.length&&E.includes(e);function eO(e,E,O){if(!E||Array.isArray(E)&&0===E.length)return!0;let t=e instanceof Set?e:e?new Set(e):null;return!!t&&0!==t.size&&("string"==typeof E?t.has(E):O?.any===!0?E.some(e=>t.has(e)):E.every(e=>t.has(e)))}function et(e){return f.includes(e)}var er=3,en=4,e_=5e4,ea="OpenAI",eo=16384,eR=5,ei="sonar",es="Auto",eT="Google",eA="Memory",eI="OpenAI",eS="system",eM="user",eL=1e4;export{H as ALL_MODELS,i as ALL_PROVIDERS,f as ALL_REASONING_MODELS,X as APPLICATION_NAME,B as APPROXIMATE_MODELS_PER_PROVIDER,x as CAPABILITIES,Q as CONTEXT_COMPRESSION_SUMMARY_ID,z as DEFAULT_TOOL_LOADING_LABEL,Y as DIGGIDY_CHAT_ID_HEADER,F as DIGGIDY_CHAT_TIMESTAMP_HEADER,y as MODELS_PER_PROVIDER,p as MODEL_AUTO_ROUTER_ANTHROPIC,G as MODEL_AUTO_ROUTER_GOOGLE,U as MODEL_AUTO_ROUTER_OPENAI,d as MODEL_CHAT_SUMMARY,M as MODEL_CLAUDE_HAIKU,I as MODEL_CLAUDE_OPUS,S as MODEL_CLAUDE_SONNET,g as MODEL_DEV,m as MODEL_DISPLAY_NAMES,C as MODEL_EMBEDDING_TEXT,L as MODEL_GEMINI_FLASH,P as MODEL_GEMINI_PRO,h as MODEL_GENERATE_IMAGE,s as MODEL_GPT5,T as MODEL_GPT5_MINI,A as MODEL_GPT5_NANO,c as MODEL_MEMORY_INFERENCE,u as MODEL_SEARCH_DECOMPOSER,N as MODEL_SONAR_PRO,D as MODEL_TEACHER,b as PLAN_BASIC,k as PLAN_PLUS,K as PLAN_PREMIUM,n as PROVIDER_ANTHROPIC,R as PROVIDER_MISTRAL,o as PROVIDER_PERPLEXITY,V as PROVIDER_ROLE_MAP,a as PROVIDER_SUMMARY,t as ROLE_ASSISTANT,v as SORT_BY_TIMESTAMP,w as SORT_BY_TOKEN_USAGE,W as TOOL_LOADING_LABELS,q as findProvider,$ as getModelsGroupedByProvider,J as getProvidersFromModels,ee as hasMultipleModelsPerProvider,eO as isEntitled,eE as isModelAllowedForPlan,j as isRealProvider,et as isReasoningModel,er as CONTEXT_COMPRESSION_KEEP_IMAGES,en as CONTEXT_COMPRESSION_KEEP_RECENT,e_ as CONTEXT_COMPRESSION_THRESHOLD,ea as DEFAULT_PROVIDER,eo as MAX_OUTPUT_TOKENS,eR as MAX_SEARCH_QUERIES,ei as MODEL_SONAR,es as PROVIDER_AUTO,eT as PROVIDER_GOOGLE,eA as PROVIDER_MEMORY,eI as PROVIDER_OPENAI,eS as ROLE_SYSTEM,eM as ROLE_USER,eL as SEARCH_QUERY_TIMEOUT_MS,E as ActionColor};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versini/sassysaint-common",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.39.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": "
|
|
35
|
+
"gitHead": "a925e2b6b683a7d4c6958902e9a3f4bf1c39f765"
|
|
36
36
|
}
|