@nice2dev/ui-ai 1.0.8 → 1.0.10
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/NiceAIHintBubble.d.ts.map +1 -1
- package/dist/NiceAIProvider.d.ts +1 -1
- package/dist/NiceAIProvider.d.ts.map +1 -1
- package/dist/NiceAccessibilityAI.d.ts +98 -0
- package/dist/NiceAccessibilityAI.d.ts.map +1 -0
- package/dist/NiceChartAI.d.ts +112 -0
- package/dist/NiceChartAI.d.ts.map +1 -0
- package/dist/NiceCodeEditorAI.d.ts +114 -0
- package/dist/NiceCodeEditorAI.d.ts.map +1 -0
- package/dist/NiceDataGridAI.d.ts +85 -0
- package/dist/NiceDataGridAI.d.ts.map +1 -0
- package/dist/NiceDataLabeler.d.ts.map +1 -1
- package/dist/NiceFormBuilderAI.d.ts +107 -0
- package/dist/NiceFormBuilderAI.d.ts.map +1 -0
- package/dist/NiceIconSuggestorAI.d.ts +81 -0
- package/dist/NiceIconSuggestorAI.d.ts.map +1 -0
- package/dist/NiceLayoutAI.d.ts +103 -0
- package/dist/NiceLayoutAI.d.ts.map +1 -0
- package/dist/NiceMLStudio.d.ts.map +1 -1
- package/dist/NiceModelInference.d.ts.map +1 -1
- package/dist/NiceReportBuilderAI.d.ts +176 -0
- package/dist/NiceReportBuilderAI.d.ts.map +1 -0
- package/dist/NiceThemeGeneratorAI.d.ts +186 -0
- package/dist/NiceThemeGeneratorAI.d.ts.map +1 -0
- package/dist/NiceWorkflowDesignerAI.d.ts +108 -0
- package/dist/NiceWorkflowDesignerAI.d.ts.map +1 -0
- package/dist/cost-tracker.d.ts +148 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/fallback-strategies.d.ts +120 -0
- package/dist/fallback-strategies.d.ts.map +1 -0
- package/dist/index.cjs +3426 -12
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +10496 -1431
- package/dist/integrations.d.ts.map +1 -1
- package/dist/llm-providers.d.ts +180 -0
- package/dist/llm-providers.d.ts.map +1 -0
- package/dist/prompt-templates.d.ts +64 -0
- package/dist/prompt-templates.d.ts.map +1 -0
- package/dist/rateLimiter.d.ts.map +1 -1
- package/dist/streaming.d.ts.map +1 -1
- package/dist/useNiceAIHint.d.ts.map +1 -1
- package/dist/wrappers.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/** Usage record for a single API call */
|
|
2
|
+
export interface UsageRecord {
|
|
3
|
+
id: string;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
tenantId?: string;
|
|
6
|
+
userId?: string;
|
|
7
|
+
feature?: string;
|
|
8
|
+
model: string;
|
|
9
|
+
provider: string;
|
|
10
|
+
promptTokens: number;
|
|
11
|
+
completionTokens: number;
|
|
12
|
+
totalTokens: number;
|
|
13
|
+
estimatedCost: number;
|
|
14
|
+
latencyMs: number;
|
|
15
|
+
cached?: boolean;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
/** Aggregated usage statistics */
|
|
19
|
+
export interface UsageStats {
|
|
20
|
+
totalRequests: number;
|
|
21
|
+
totalTokens: number;
|
|
22
|
+
totalPromptTokens: number;
|
|
23
|
+
totalCompletionTokens: number;
|
|
24
|
+
totalCost: number;
|
|
25
|
+
averageLatency: number;
|
|
26
|
+
errorCount: number;
|
|
27
|
+
cacheHitRate: number;
|
|
28
|
+
byModel: Record<string, {
|
|
29
|
+
requests: number;
|
|
30
|
+
tokens: number;
|
|
31
|
+
cost: number;
|
|
32
|
+
}>;
|
|
33
|
+
byFeature: Record<string, {
|
|
34
|
+
requests: number;
|
|
35
|
+
tokens: number;
|
|
36
|
+
cost: number;
|
|
37
|
+
}>;
|
|
38
|
+
byDay: Record<string, {
|
|
39
|
+
requests: number;
|
|
40
|
+
tokens: number;
|
|
41
|
+
cost: number;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
/** Budget configuration */
|
|
45
|
+
export interface BudgetConfig {
|
|
46
|
+
/** Monthly budget in USD */
|
|
47
|
+
monthlyBudget?: number;
|
|
48
|
+
/** Daily budget in USD */
|
|
49
|
+
dailyBudget?: number;
|
|
50
|
+
/** Max tokens per request */
|
|
51
|
+
maxTokensPerRequest?: number;
|
|
52
|
+
/** Max requests per minute */
|
|
53
|
+
maxRequestsPerMinute?: number;
|
|
54
|
+
/** Max requests per day */
|
|
55
|
+
maxRequestsPerDay?: number;
|
|
56
|
+
/** Alert thresholds (percentage of budget) */
|
|
57
|
+
alertThresholds?: number[];
|
|
58
|
+
}
|
|
59
|
+
/** Budget status */
|
|
60
|
+
export interface BudgetStatus {
|
|
61
|
+
dailyUsed: number;
|
|
62
|
+
dailyRemaining: number;
|
|
63
|
+
dailyPercent: number;
|
|
64
|
+
monthlyUsed: number;
|
|
65
|
+
monthlyRemaining: number;
|
|
66
|
+
monthlyPercent: number;
|
|
67
|
+
requestsToday: number;
|
|
68
|
+
requestsThisMinute: number;
|
|
69
|
+
isOverBudget: boolean;
|
|
70
|
+
alerts: string[];
|
|
71
|
+
}
|
|
72
|
+
/** Storage interface for persistence */
|
|
73
|
+
export interface ICostStorage {
|
|
74
|
+
save(tenantId: string, records: UsageRecord[]): Promise<void>;
|
|
75
|
+
load(tenantId: string, startDate?: Date, endDate?: Date): Promise<UsageRecord[]>;
|
|
76
|
+
clear(tenantId: string, beforeDate?: Date): Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
export declare class InMemoryCostStorage implements ICostStorage {
|
|
79
|
+
private records;
|
|
80
|
+
save(tenantId: string, records: UsageRecord[]): Promise<void>;
|
|
81
|
+
load(tenantId: string, startDate?: Date, endDate?: Date): Promise<UsageRecord[]>;
|
|
82
|
+
clear(tenantId: string, beforeDate?: Date): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
export declare class LocalStorageCostStorage implements ICostStorage {
|
|
85
|
+
private readonly prefix;
|
|
86
|
+
save(tenantId: string, records: UsageRecord[]): Promise<void>;
|
|
87
|
+
load(tenantId: string, startDate?: Date, endDate?: Date): Promise<UsageRecord[]>;
|
|
88
|
+
clear(tenantId: string, beforeDate?: Date): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
export declare class CostTracker {
|
|
91
|
+
private storage;
|
|
92
|
+
private pendingRecords;
|
|
93
|
+
private flushTimer;
|
|
94
|
+
private budgetConfig;
|
|
95
|
+
private alertCallbacks;
|
|
96
|
+
private minuteCounter;
|
|
97
|
+
private dayCounter;
|
|
98
|
+
constructor(storage?: ICostStorage, budgetConfig?: BudgetConfig);
|
|
99
|
+
/**
|
|
100
|
+
* Record API usage
|
|
101
|
+
*/
|
|
102
|
+
recordUsage(tenantId: string, usage: Omit<UsageRecord, 'id' | 'timestamp'>): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Check if request is allowed before making API call
|
|
105
|
+
*/
|
|
106
|
+
canMakeRequest(tenantId: string): Promise<{
|
|
107
|
+
allowed: boolean;
|
|
108
|
+
reason?: string;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Get budget status for a tenant
|
|
112
|
+
*/
|
|
113
|
+
getBudgetStatus(tenantId: string): Promise<BudgetStatus>;
|
|
114
|
+
/**
|
|
115
|
+
* Get aggregated usage statistics
|
|
116
|
+
*/
|
|
117
|
+
getUsageStats(tenantId: string, startDate?: Date, endDate?: Date): Promise<UsageStats>;
|
|
118
|
+
/**
|
|
119
|
+
* Subscribe to budget alerts
|
|
120
|
+
*/
|
|
121
|
+
onAlert(callback: (alert: string, status: BudgetStatus) => void): () => void;
|
|
122
|
+
/**
|
|
123
|
+
* Update budget configuration
|
|
124
|
+
*/
|
|
125
|
+
setBudgetConfig(config: Partial<BudgetConfig>): void;
|
|
126
|
+
/**
|
|
127
|
+
* Clear usage data
|
|
128
|
+
*/
|
|
129
|
+
clearUsage(tenantId: string, beforeDate?: Date): Promise<void>;
|
|
130
|
+
private generateId;
|
|
131
|
+
private updateCounters;
|
|
132
|
+
private getMinuteCount;
|
|
133
|
+
private scheduleFlush;
|
|
134
|
+
private checkAlerts;
|
|
135
|
+
}
|
|
136
|
+
/** Hook for tracking AI costs in React components */
|
|
137
|
+
export declare function useCostTracker(tenantId: string, budgetConfig?: BudgetConfig): {
|
|
138
|
+
status: BudgetStatus | null;
|
|
139
|
+
stats: UsageStats | null;
|
|
140
|
+
loading: boolean;
|
|
141
|
+
recordUsage: (usage: Omit<UsageRecord, 'id' | 'timestamp'>) => Promise<void>;
|
|
142
|
+
canMakeRequest: () => Promise<{
|
|
143
|
+
allowed: boolean;
|
|
144
|
+
reason?: string;
|
|
145
|
+
}>;
|
|
146
|
+
refresh: () => Promise<void>;
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../src/cost-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ILLMProvider, LLMChatRequest, LLMChatResponse, LLMProviderConfig } from './llm-providers';
|
|
2
|
+
|
|
3
|
+
/** Fallback strategy type */
|
|
4
|
+
export type FallbackStrategy = 'retry' | 'failover' | 'cache' | 'offline' | 'graceful-degrade' | 'circuit-breaker';
|
|
5
|
+
/** Fallback configuration */
|
|
6
|
+
export interface FallbackConfig {
|
|
7
|
+
/** Primary strategies to try in order */
|
|
8
|
+
strategies: FallbackStrategy[];
|
|
9
|
+
/** Max retries for 'retry' strategy */
|
|
10
|
+
maxRetries?: number;
|
|
11
|
+
/** Retry delay in ms */
|
|
12
|
+
retryDelay?: number;
|
|
13
|
+
/** Exponential backoff multiplier */
|
|
14
|
+
backoffMultiplier?: number;
|
|
15
|
+
/** Backup provider configs for 'failover' */
|
|
16
|
+
backupProviders?: LLMProviderConfig[];
|
|
17
|
+
/** Cache TTL in ms for 'cache' strategy */
|
|
18
|
+
cacheTTL?: number;
|
|
19
|
+
/** Offline model config for 'offline' strategy */
|
|
20
|
+
offlineConfig?: LLMProviderConfig;
|
|
21
|
+
/** Circuit breaker threshold (failures before opening) */
|
|
22
|
+
circuitBreakerThreshold?: number;
|
|
23
|
+
/** Circuit breaker reset time in ms */
|
|
24
|
+
circuitBreakerResetTime?: number;
|
|
25
|
+
/** Callback when fallback is triggered */
|
|
26
|
+
onFallback?: (strategy: FallbackStrategy, error: Error) => void;
|
|
27
|
+
}
|
|
28
|
+
/** Circuit breaker state */
|
|
29
|
+
interface CircuitBreakerState {
|
|
30
|
+
failures: number;
|
|
31
|
+
lastFailure: number;
|
|
32
|
+
isOpen: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resilient LLM client with fallback strategies
|
|
36
|
+
*/
|
|
37
|
+
export declare class ResilientLLMClient {
|
|
38
|
+
private primaryProvider;
|
|
39
|
+
private backupProviders;
|
|
40
|
+
private config;
|
|
41
|
+
private cache;
|
|
42
|
+
private circuitBreakers;
|
|
43
|
+
private offlineProvider?;
|
|
44
|
+
constructor(primaryProvider: ILLMProvider, fallbackConfig?: FallbackConfig);
|
|
45
|
+
/**
|
|
46
|
+
* Make a chat request with fallback strategies
|
|
47
|
+
*/
|
|
48
|
+
chat(request: LLMChatRequest): Promise<LLMChatResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Execute fallback strategies
|
|
51
|
+
*/
|
|
52
|
+
private executeWithFallback;
|
|
53
|
+
/**
|
|
54
|
+
* Execute a specific fallback strategy
|
|
55
|
+
*/
|
|
56
|
+
private executeStrategy;
|
|
57
|
+
/**
|
|
58
|
+
* Retry with exponential backoff
|
|
59
|
+
*/
|
|
60
|
+
private retryStrategy;
|
|
61
|
+
/**
|
|
62
|
+
* Try backup providers
|
|
63
|
+
*/
|
|
64
|
+
private failoverStrategy;
|
|
65
|
+
/**
|
|
66
|
+
* Return cached response
|
|
67
|
+
*/
|
|
68
|
+
private cacheStrategy;
|
|
69
|
+
/**
|
|
70
|
+
* Use offline/local model
|
|
71
|
+
*/
|
|
72
|
+
private offlineStrategy;
|
|
73
|
+
/**
|
|
74
|
+
* Return a gracefully degraded response
|
|
75
|
+
*/
|
|
76
|
+
private gracefulDegradeStrategy;
|
|
77
|
+
/**
|
|
78
|
+
* Generate a helpful degraded response
|
|
79
|
+
*/
|
|
80
|
+
private generateDegradedResponse;
|
|
81
|
+
private isCircuitOpen;
|
|
82
|
+
private recordFailure;
|
|
83
|
+
private openCircuitBreaker;
|
|
84
|
+
private resetCircuitBreaker;
|
|
85
|
+
private delay;
|
|
86
|
+
/**
|
|
87
|
+
* Add a backup provider
|
|
88
|
+
*/
|
|
89
|
+
addBackupProvider(provider: ILLMProvider): void;
|
|
90
|
+
/**
|
|
91
|
+
* Set offline provider
|
|
92
|
+
*/
|
|
93
|
+
setOfflineProvider(provider: ILLMProvider): void;
|
|
94
|
+
/**
|
|
95
|
+
* Clear response cache
|
|
96
|
+
*/
|
|
97
|
+
clearCache(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Reset all circuit breakers
|
|
100
|
+
*/
|
|
101
|
+
resetAllCircuitBreakers(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Get circuit breaker status
|
|
104
|
+
*/
|
|
105
|
+
getCircuitBreakerStatus(): Record<string, CircuitBreakerState>;
|
|
106
|
+
/**
|
|
107
|
+
* Perform health check on all providers
|
|
108
|
+
*/
|
|
109
|
+
healthCheck(): Promise<Record<string, boolean>>;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Create a resilient LLM client with default fallback configuration
|
|
113
|
+
*/
|
|
114
|
+
export declare function createResilientClient(primaryConfig: LLMProviderConfig, fallbackConfig?: FallbackConfig): ResilientLLMClient;
|
|
115
|
+
/**
|
|
116
|
+
* Create a resilient client with recommended configuration
|
|
117
|
+
*/
|
|
118
|
+
export declare function createResilientClientWithDefaults(primaryConfig: LLMProviderConfig, backupConfig?: LLMProviderConfig): ResilientLLMClient;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=fallback-strategies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-strategies.d.ts","sourceRoot":"","sources":["../src/fallback-strategies.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAOzB,6BAA6B;AAC7B,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,UAAU,GACV,OAAO,GACP,SAAS,GACT,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uCAAuC;IACvC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjE;AASD,4BAA4B;AAC5B,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AA4ED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,eAAe,CAAC,CAAe;gBAE3B,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,cAAc;IA8B1E;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAiB7D;;OAEG;YACW,mBAAmB;IAoBjC;;OAEG;YACW,eAAe;IA+B7B;;OAEG;YACW,aAAa;IAkB3B;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;YACW,eAAe;IAY7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,KAAK;IAMb;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI/C;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIhD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,uBAAuB,IAAI,IAAI;IAI/B;;OAEG;IACH,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAQ9D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAetD;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,cAAc,GAC9B,kBAAkB,CAGpB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,kBAAkB,CAoBpB"}
|