@smallwebco/tinypivot-core 1.0.53 → 1.0.54

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,221 @@
1
+ /**
2
+ * Build the system prompt for the AI Data Analyst
3
+ */
4
+ export function buildSystemPrompt(dataSources, schemas, selectedSourceId) {
5
+ const selectedSchema = selectedSourceId ? schemas.get(selectedSourceId) : undefined;
6
+ const selectedSource = selectedSourceId
7
+ ? dataSources.find(ds => ds.id === selectedSourceId)
8
+ : undefined;
9
+ return `You are a data analyst assistant. Your job is to translate user questions into SQL queries and return data results.
10
+
11
+ ## CRITICAL: ALWAYS GENERATE A SQL QUERY
12
+ **Every response MUST include a SQL query.** The user is here to explore data - they expect to see results.
13
+ - If the user asks a question → Generate a query to answer it
14
+ - If the user says "show me" or "what are" → Generate a query
15
+ - If the user asks for trends/patterns → Generate an aggregation query
16
+ - If the question is vague → Make reasonable assumptions and generate a query anyway
17
+ - If you're unsure what they want → Generate a sensible default query (like top 10 rows with key columns)
18
+
19
+ **NEVER respond with only text. ALWAYS include a SQL query in your response.**
20
+
21
+ ## Available Data Sources
22
+ ${formatDataSourcesList(dataSources)}
23
+
24
+ ${selectedSource && selectedSchema ? formatSelectedSchemaContext(selectedSource, selectedSchema) : '## No Data Source Selected\nPlease ask the user to select a data source first.'}
25
+
26
+ ## Query Rules
27
+ 1. **READ-ONLY**: ONLY use SELECT. NEVER use INSERT, UPDATE, DELETE, DROP, ALTER, TRUNCATE, or any write operations.
28
+ 2. **LIMIT RESULTS**: Always use LIMIT (default 100-1000 rows) to avoid overwhelming results.
29
+ 3. **ONE TABLE**: Only query the currently selected table: \`${selectedSchema?.table || 'table_name'}\`
30
+ 4. **BE SPECIFIC**: Select relevant columns, not SELECT * (unless showing sample data)
31
+
32
+ ## Query Format
33
+ Output queries in this EXACT format (the system auto-executes SQL blocks):
34
+
35
+ \`\`\`sql
36
+ SELECT column1, column2 FROM ${selectedSchema?.table || 'table_name'} WHERE condition LIMIT 100
37
+ \`\`\`
38
+
39
+ For complex analysis, use CTEs:
40
+ \`\`\`sql
41
+ WITH summary AS (
42
+ SELECT category, COUNT(*) as count
43
+ FROM ${selectedSchema?.table || 'table_name'}
44
+ GROUP BY category
45
+ )
46
+ SELECT * FROM summary ORDER BY count DESC LIMIT 20
47
+ \`\`\`
48
+
49
+ ## Response Format
50
+ Keep responses concise and insight-focused:
51
+ 1. **Start with the SQL query** in a code block (REQUIRED) - this will be extracted and hidden from the user
52
+ 2. **Then provide your insight/analysis** (2-3 sentences) explaining what the data shows
53
+ 3. **Optional**: Suggest 1-2 follow-up questions
54
+
55
+ **IMPORTANT**: The SQL block is automatically extracted and shown separately. Your text response should focus on INSIGHTS about the data, not describing the query itself. Don't say "I'm querying..." or "This query shows...". Instead, provide the analytical insight directly.
56
+
57
+ Example response:
58
+ "\`\`\`sql
59
+ SELECT department, AVG(salary) as avg_salary FROM employees GROUP BY department ORDER BY avg_salary DESC LIMIT 10
60
+ \`\`\`
61
+
62
+ Engineering and Product teams have the highest average salaries at $145K and $138K respectively, while Support and Operations are at the lower end around $75K. This 2x salary gap may indicate market-driven compensation or role complexity differences.
63
+
64
+ Want to see how this breaks down by job level?"
65
+
66
+ ## If Query Fails
67
+ - Acknowledge the error briefly
68
+ - Provide a corrected query immediately
69
+ - Don't apologize excessively, just fix it`;
70
+ }
71
+ /**
72
+ * Format the list of available data sources for the prompt
73
+ */
74
+ function formatDataSourcesList(dataSources) {
75
+ if (dataSources.length === 0) {
76
+ return 'No data sources configured.';
77
+ }
78
+ return dataSources
79
+ .map((ds) => {
80
+ const desc = ds.description ? `: ${ds.description}` : '';
81
+ return `- **${ds.name}** (${ds.table})${desc}`;
82
+ })
83
+ .join('\n');
84
+ }
85
+ /**
86
+ * Format the schema context for the currently selected data source
87
+ */
88
+ function formatSelectedSchemaContext(source, schema) {
89
+ // Filter out hidden columns
90
+ const visibleColumns = schema.columns.filter((col) => {
91
+ const override = source.columns?.find(c => c.name === col.name);
92
+ return !override?.hidden;
93
+ });
94
+ // Merge descriptions from overrides
95
+ const columnsWithDescriptions = visibleColumns.map((col) => {
96
+ const override = source.columns?.find(c => c.name === col.name);
97
+ return {
98
+ ...col,
99
+ description: override?.description || col.description,
100
+ };
101
+ });
102
+ return `## Currently Selected: ${source.name}
103
+ Table: \`${schema.table}\`
104
+ ${source.description ? `Description: ${source.description}` : ''}
105
+
106
+ ### Columns
107
+ ${formatColumnsTable(columnsWithDescriptions)}
108
+
109
+ ### Query Tips
110
+ - Use column names exactly as shown above
111
+ - The table name is \`${schema.table}\`
112
+ - For text searches, use ILIKE for case-insensitive matching
113
+ - For date columns, use standard SQL date functions`;
114
+ }
115
+ /**
116
+ * Format columns as a readable table for the prompt
117
+ */
118
+ function formatColumnsTable(columns) {
119
+ return columns
120
+ .map((col) => {
121
+ const nullable = col.nullable ? 'nullable' : 'required';
122
+ const desc = col.description ? ` - ${col.description}` : '';
123
+ return `- \`${col.name}\` (${col.type}, ${nullable})${desc}`;
124
+ })
125
+ .join('\n');
126
+ }
127
+ /**
128
+ * Build a user message with additional context
129
+ */
130
+ export function buildUserMessage(userInput, context) {
131
+ let message = userInput;
132
+ if (context?.previousQueryFailed && context.errorMessage) {
133
+ message = `[Previous query failed: ${context.errorMessage}]\n\n${userInput}`;
134
+ }
135
+ return message;
136
+ }
137
+ /**
138
+ * Extract SQL query from AI response
139
+ * Returns the SQL if found, null otherwise
140
+ */
141
+ export function extractSQLFromResponse(response) {
142
+ // Match SQL code blocks
143
+ const sqlBlockRegex = /```sql\s*([\s\S]*?)```/i;
144
+ const match = response.match(sqlBlockRegex);
145
+ if (match && match[1]) {
146
+ const sql = match[1].trim();
147
+ // Validate it's a SELECT statement
148
+ if (!sql.toUpperCase().startsWith('SELECT')) {
149
+ return null;
150
+ }
151
+ return sql;
152
+ }
153
+ return null;
154
+ }
155
+ /**
156
+ * Validate that a SQL query is safe (read-only)
157
+ */
158
+ export function validateSQLSafety(sql) {
159
+ const upperSQL = sql.toUpperCase().trim();
160
+ // Must start with SELECT or WITH (for CTEs)
161
+ if (!upperSQL.startsWith('SELECT') && !upperSQL.startsWith('WITH')) {
162
+ return { valid: false, error: 'Only SELECT queries (including CTEs with WITH) are allowed' };
163
+ }
164
+ // If it starts with WITH, ensure it ends with a SELECT
165
+ if (upperSQL.startsWith('WITH') && !upperSQL.includes('SELECT')) {
166
+ return { valid: false, error: 'CTE queries must include a final SELECT statement' };
167
+ }
168
+ // Check for dangerous keywords
169
+ const dangerousKeywords = [
170
+ 'INSERT',
171
+ 'UPDATE',
172
+ 'DELETE',
173
+ 'DROP',
174
+ 'ALTER',
175
+ 'TRUNCATE',
176
+ 'CREATE',
177
+ 'GRANT',
178
+ 'REVOKE',
179
+ 'EXEC',
180
+ 'EXECUTE',
181
+ 'INTO', // SELECT INTO
182
+ ];
183
+ for (const keyword of dangerousKeywords) {
184
+ // Check for keyword as a whole word (not part of column name)
185
+ const regex = new RegExp(`\\b${keyword}\\b`, 'i');
186
+ if (regex.test(sql)) {
187
+ return { valid: false, error: `Query contains forbidden keyword: ${keyword}` };
188
+ }
189
+ }
190
+ // Check for multiple statements
191
+ if (sql.includes(';')) {
192
+ const statements = sql.split(';').filter(s => s.trim().length > 0);
193
+ if (statements.length > 1) {
194
+ return { valid: false, error: 'Multiple statements are not allowed' };
195
+ }
196
+ }
197
+ return { valid: true };
198
+ }
199
+ /**
200
+ * Build a summary message after query results are returned
201
+ */
202
+ export function buildResultsSummary(rowCount, truncated, maxRows) {
203
+ if (rowCount === 0) {
204
+ return 'The query returned no results. You may want to adjust your filters or try a different approach.';
205
+ }
206
+ if (truncated) {
207
+ return `Retrieved ${rowCount} rows (limited to ${maxRows}). There may be more data matching your query. Consider adding filters to narrow down the results.`;
208
+ }
209
+ return `Retrieved ${rowCount} row${rowCount === 1 ? '' : 's'}.`;
210
+ }
211
+ /**
212
+ * Strip SQL code blocks from message content for display
213
+ * The SQL is stored in metadata and shown via a button instead
214
+ */
215
+ export function stripSQLFromContent(content) {
216
+ // Remove SQL code blocks and any surrounding whitespace
217
+ return content
218
+ .replace(/```sql\s*[\s\S]*?```\s*/gi, '')
219
+ .trim();
220
+ }
221
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * TinyPivot Core - AI Session Management
3
+ * Utilities for managing AI conversation sessions
4
+ */
5
+ import type { AIConversation, AIMessage } from '../types';
6
+ /**
7
+ * Generate a unique session ID
8
+ */
9
+ export declare function generateSessionId(): string;
10
+ /**
11
+ * Generate a unique message ID
12
+ */
13
+ export declare function generateMessageId(): string;
14
+ /**
15
+ * Create a new empty conversation
16
+ */
17
+ export declare function createConversation(sessionId?: string): AIConversation;
18
+ /**
19
+ * Create a user message
20
+ */
21
+ export declare function createUserMessage(content: string): AIMessage;
22
+ /**
23
+ * Create an assistant message
24
+ */
25
+ export declare function createAssistantMessage(content: string, metadata?: AIMessage['metadata']): AIMessage;
26
+ /**
27
+ * Create a system message
28
+ */
29
+ export declare function createSystemMessage(content: string): AIMessage;
30
+ /**
31
+ * Add a message to a conversation (immutably)
32
+ */
33
+ export declare function addMessageToConversation(conversation: AIConversation, message: AIMessage): AIConversation;
34
+ /**
35
+ * Update the data source for a conversation
36
+ */
37
+ export declare function setConversationDataSource(conversation: AIConversation, dataSourceId: string | undefined): AIConversation;
38
+ /**
39
+ * Serialize a conversation to JSON string for storage
40
+ */
41
+ export declare function serializeConversation(conversation: AIConversation): string;
42
+ /**
43
+ * Deserialize a conversation from JSON string
44
+ */
45
+ export declare function deserializeConversation(json: string): AIConversation | null;
46
+ /**
47
+ * Get the messages formatted for the AI API
48
+ * Excludes system messages and metadata
49
+ */
50
+ export declare function getMessagesForAPI(conversation: AIConversation): Array<{
51
+ role: 'user' | 'assistant';
52
+ content: string;
53
+ }>;
54
+ /**
55
+ * Trim conversation to last N messages to manage context window
56
+ */
57
+ export declare function trimConversation(conversation: AIConversation, maxMessages: number): AIConversation;
58
+ /**
59
+ * Get conversation statistics
60
+ */
61
+ export declare function getConversationStats(conversation: AIConversation): {
62
+ messageCount: number;
63
+ userMessageCount: number;
64
+ assistantMessageCount: number;
65
+ queriesExecuted: number;
66
+ successfulQueries: number;
67
+ failedQueries: number;
68
+ };
69
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/ai/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CASrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAO5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,GAC/B,SAAS,CAQX;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAO9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,SAAS,GACjB,cAAc,CAMhB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,cAAc,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,cAAc,CAMhB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,cAAc,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAkB3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,cAAc,GAC3B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAOxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAE,MAAM,GAClB,cAAc,CAUhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,cAAc,GAAG;IAClE,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB,CAaA"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Generate a unique session ID
3
+ */
4
+ export function generateSessionId() {
5
+ return `tp-ai-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
6
+ }
7
+ /**
8
+ * Generate a unique message ID
9
+ */
10
+ export function generateMessageId() {
11
+ return `msg-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
12
+ }
13
+ /**
14
+ * Create a new empty conversation
15
+ */
16
+ export function createConversation(sessionId) {
17
+ const now = Date.now();
18
+ return {
19
+ id: sessionId || generateSessionId(),
20
+ messages: [],
21
+ dataSourceId: undefined,
22
+ createdAt: now,
23
+ updatedAt: now,
24
+ };
25
+ }
26
+ /**
27
+ * Create a user message
28
+ */
29
+ export function createUserMessage(content) {
30
+ return {
31
+ id: generateMessageId(),
32
+ role: 'user',
33
+ content,
34
+ timestamp: Date.now(),
35
+ };
36
+ }
37
+ /**
38
+ * Create an assistant message
39
+ */
40
+ export function createAssistantMessage(content, metadata) {
41
+ return {
42
+ id: generateMessageId(),
43
+ role: 'assistant',
44
+ content,
45
+ timestamp: Date.now(),
46
+ metadata,
47
+ };
48
+ }
49
+ /**
50
+ * Create a system message
51
+ */
52
+ export function createSystemMessage(content) {
53
+ return {
54
+ id: generateMessageId(),
55
+ role: 'system',
56
+ content,
57
+ timestamp: Date.now(),
58
+ };
59
+ }
60
+ /**
61
+ * Add a message to a conversation (immutably)
62
+ */
63
+ export function addMessageToConversation(conversation, message) {
64
+ return {
65
+ ...conversation,
66
+ messages: [...conversation.messages, message],
67
+ updatedAt: Date.now(),
68
+ };
69
+ }
70
+ /**
71
+ * Update the data source for a conversation
72
+ */
73
+ export function setConversationDataSource(conversation, dataSourceId) {
74
+ return {
75
+ ...conversation,
76
+ dataSourceId,
77
+ updatedAt: Date.now(),
78
+ };
79
+ }
80
+ /**
81
+ * Serialize a conversation to JSON string for storage
82
+ */
83
+ export function serializeConversation(conversation) {
84
+ return JSON.stringify(conversation);
85
+ }
86
+ /**
87
+ * Deserialize a conversation from JSON string
88
+ */
89
+ export function deserializeConversation(json) {
90
+ try {
91
+ const parsed = JSON.parse(json);
92
+ // Basic validation
93
+ if (typeof parsed !== 'object'
94
+ || !parsed.id
95
+ || !Array.isArray(parsed.messages)) {
96
+ return null;
97
+ }
98
+ return parsed;
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * Get the messages formatted for the AI API
106
+ * Excludes system messages and metadata
107
+ */
108
+ export function getMessagesForAPI(conversation) {
109
+ return conversation.messages
110
+ .filter(m => m.role !== 'system')
111
+ .map(m => ({
112
+ role: m.role,
113
+ content: m.content,
114
+ }));
115
+ }
116
+ /**
117
+ * Trim conversation to last N messages to manage context window
118
+ */
119
+ export function trimConversation(conversation, maxMessages) {
120
+ if (conversation.messages.length <= maxMessages) {
121
+ return conversation;
122
+ }
123
+ return {
124
+ ...conversation,
125
+ messages: conversation.messages.slice(-maxMessages),
126
+ updatedAt: Date.now(),
127
+ };
128
+ }
129
+ /**
130
+ * Get conversation statistics
131
+ */
132
+ export function getConversationStats(conversation) {
133
+ const messages = conversation.messages;
134
+ const queriesExecuted = messages.filter(m => m.metadata?.query).length;
135
+ const failedQueries = messages.filter(m => m.metadata?.error).length;
136
+ return {
137
+ messageCount: messages.length,
138
+ userMessageCount: messages.filter(m => m.role === 'user').length,
139
+ assistantMessageCount: messages.filter(m => m.role === 'assistant').length,
140
+ queriesExecuted,
141
+ successfulQueries: queriesExecuted - failedQueries,
142
+ failedQueries,
143
+ };
144
+ }
145
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/ai/session.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,OAAO;QACL,EAAE,EAAE,SAAS,IAAI,iBAAiB,EAAE;QACpC,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,SAAS;QACvB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAgC;IAEhC,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ;KACT,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAA4B,EAC5B,OAAkB;IAElB,OAAO;QACL,GAAG,YAAY;QACf,QAAQ,EAAE,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC7C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA4B,EAC5B,YAAgC;IAEhC,OAAO;QACL,GAAG,YAAY;QACf,YAAY;QACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAA4B;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE/B,mBAAmB;QACnB,IACE,OAAO,MAAM,KAAK,QAAQ;eACvB,CAAC,MAAM,CAAC,EAAE;eACV,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAClC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAwB,CAAA;IACjC,CAAC;IACD,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAA4B;IAE5B,OAAO,YAAY,CAAC,QAAQ;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,EAAE,CAAC,CAAC,IAA4B;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC,CAAA;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAA4B,EAC5B,WAAmB;IAEnB,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QAChD,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,OAAO;QACL,GAAG,YAAY;QACf,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QACnD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAA4B;IAQ/D,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;IACtC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAA;IACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAA;IAEpE,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;QAChE,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM;QAC1E,eAAe;QACf,iBAAiB,EAAE,eAAe,GAAG,aAAa;QAClD,aAAa;KACd,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,14 +4,16 @@
4
4
  *
5
5
  * @packageDocumentation
6
6
  */
7
+ export { addMessageToConversation, buildResultsSummary, buildSystemPrompt, buildUserMessage, createAssistantMessage, createConversation, createSystemMessage, createUserMessage, DEMO_DATA_SOURCES, DEMO_SCENARIOS, DEMO_SCHEMAS, deserializeConversation, extractSQLFromResponse, findDemoResponse, generateMessageId, generateSessionId, getConversationStats, getDefaultDemoResponse, getDemoSchema, getInitialDemoData, getMessagesForAPI, serializeConversation, setConversationDataSource, stripSQLFromContent, trimConversation, validateSQLSafety, } from './ai';
8
+ export type { DemoScenario, DemoTrigger } from './ai';
7
9
  export { aggregateValues, analyzeFieldsForChart, CHART_AGGREGATIONS, CHART_COLORS, CHART_TYPES, createDefaultChartConfig, detectFieldRole, formatFieldLabel, generateChartStorageKey, getChartGuidance, getChartTypeInfo, isChartConfigValid, loadChartConfig, processChartData, processChartDataForHeatmap, processChartDataForPie, processChartDataForScatter, saveChartConfig, } from './chart';
8
10
  export type { HeatmapSeriesData, ScatterPoint, ScatterSeriesData } from './chart';
9
11
  export { copyToClipboard, exportPivotToCSV, exportToCSV, formatSelectionForClipboard, } from './export';
10
12
  export type { PivotExportData } from './export';
11
- export { canUseCharts, canUsePivot, configureLicenseSecret, getDemoLicenseInfo, getFreeLicenseInfo, isPro, logProRequired, shouldShowWatermark, validateLicenseKey, } from './license';
13
+ export { canUseAIAnalyst, canUseCharts, canUsePivot, configureLicenseSecret, getDemoLicenseInfo, getFreeLicenseInfo, isPro, logProRequired, shouldShowWatermark, validateLicenseKey, } from './license';
12
14
  export { addCalculatedField, aggregate, AGGREGATION_OPTIONS, CALCULATED_FIELD_PRESETS, computeAvailableFields, computePivotResult, evaluateFormula, evaluateSimpleFormula, formatAggregatedValue, formatCalculatedValue, FORMULA_FUNCTIONS, generateStorageKey, getAggregationLabel, getAggregationSymbol, getUnassignedFields, isConfigValidForFields, isPivotConfigured, loadCalculatedFields, loadPivotConfig, parseFormula, parseSimpleFormula, removeCalculatedField, saveCalculatedFields, savePivotConfig, validateFormula, validateSimpleFormula, } from './pivot';
13
15
  export type { FormulaFunction } from './pivot';
14
- export type { ActiveFilter, AggregationFunction, CalculatedField, CellClickEvent, ChartAggregation, ChartConfig, ChartData, ChartField, ChartFieldInfo, ChartOptions, ChartSeries, ChartType, ChartTypeInfo, ColumnFilter, ColumnFilterValue, ColumnStats, CopyEvent, CustomAggregationFn, DataGridProps, ExportEvent, ExportOptions, FieldRole, FieldStats, FilterEvent, GridOptions, LicenseFeatures, LicenseInfo, LicenseType, NumericRange, PaginationOptions, PivotCell, PivotConfig, PivotField, PivotResult, PivotTableProps, PivotValueField, RowSelectionChangeEvent, SelectionBounds, SelectionChangeEvent, SortEvent, } from './types';
16
+ export type { ActiveFilter, AggregationFunction, AIAnalystConfig, AIColumnOverride, AIColumnSchema, AIConversation, AIConversationUpdateEvent, AIDataLoadedEvent, AIDataSource, AIErrorEvent, AIMessage, AIMessageMetadata, AIProvider, AIProxyRequest, AIProxyResponse, AIQueryExecutedEvent, AITableSchema, CalculatedField, CellClickEvent, ChartAggregation, ChartConfig, ChartData, ChartField, ChartFieldInfo, ChartOptions, ChartSeries, ChartType, ChartTypeInfo, ColumnFilter, ColumnFilterValue, ColumnStats, CopyEvent, CustomAggregationFn, DatabaseEndpointRequest, DataGridProps, ExportEvent, ExportOptions, FieldRole, FieldStats, FilterEvent, GridOptions, LicenseFeatures, LicenseInfo, LicenseType, ListTablesResponse, NumericRange, PaginationOptions, PivotCell, PivotConfig, PivotField, PivotResult, PivotTableProps, PivotValueField, QueryRequest, QueryResponse, RowSelectionChangeEvent, SchemaRequest, SchemaResponse, SelectionBounds, SelectionChangeEvent, SortEvent, } from './types';
15
17
  export { isNumericRange } from './types';
16
18
  export { clamp, debounce, detectColumnType, detectFieldType, formatCellValue, formatNumber, getColumnUniqueValues, makeKey, naturalSort, parseKey, } from './utils';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAGjF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AAEjB,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EAErB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EAEZ,kBAAkB,EAClB,qBAAqB,EAErB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,YAAY,EACV,YAAY,EAEZ,mBAAmB,EACnB,eAAe,EACf,cAAc,EAGd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EAEb,YAAY,EACZ,iBAAiB,EAEjB,WAAW,EACX,SAAS,EACT,mBAAmB,EAEnB,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EAGV,WAAW,EACX,WAAW,EAEX,eAAe,EACf,WAAW,EAEX,WAAW,EAEX,YAAY,EAEZ,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EAEf,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,SAAS,GACV,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,12 +4,20 @@
4
4
  *
5
5
  * @packageDocumentation
6
6
  */
7
+ // AI Data Analyst
8
+ export {
9
+ // Session management
10
+ addMessageToConversation,
11
+ // Prompt engineering
12
+ buildResultsSummary, buildSystemPrompt, buildUserMessage, createAssistantMessage, createConversation, createSystemMessage, createUserMessage,
13
+ // Demo mode
14
+ DEMO_DATA_SOURCES, DEMO_SCENARIOS, DEMO_SCHEMAS, deserializeConversation, extractSQLFromResponse, findDemoResponse, generateMessageId, generateSessionId, getConversationStats, getDefaultDemoResponse, getDemoSchema, getInitialDemoData, getMessagesForAPI, serializeConversation, setConversationDataSource, stripSQLFromContent, trimConversation, validateSQLSafety, } from './ai';
7
15
  // Chart Utilities
8
16
  export { aggregateValues, analyzeFieldsForChart, CHART_AGGREGATIONS, CHART_COLORS, CHART_TYPES, createDefaultChartConfig, detectFieldRole, formatFieldLabel, generateChartStorageKey, getChartGuidance, getChartTypeInfo, isChartConfigValid, loadChartConfig, processChartData, processChartDataForHeatmap, processChartDataForPie, processChartDataForScatter, saveChartConfig, } from './chart';
9
17
  // Export Utilities
10
18
  export { copyToClipboard, exportPivotToCSV, exportToCSV, formatSelectionForClipboard, } from './export';
11
19
  // License Management
12
- export { canUseCharts, canUsePivot, configureLicenseSecret, getDemoLicenseInfo, getFreeLicenseInfo, isPro, logProRequired, shouldShowWatermark, validateLicenseKey, } from './license';
20
+ export { canUseAIAnalyst, canUseCharts, canUsePivot, configureLicenseSecret, getDemoLicenseInfo, getFreeLicenseInfo, isPro, logProRequired, shouldShowWatermark, validateLicenseKey, } from './license';
13
21
  // Pivot Table Logic
14
22
  export { addCalculatedField, aggregate, AGGREGATION_OPTIONS, CALCULATED_FIELD_PRESETS, computeAvailableFields, computePivotResult, evaluateFormula, evaluateSimpleFormula, formatAggregatedValue, formatCalculatedValue,
15
23
  // Calculated Fields & Formulas
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,SAAS,CAAA;AAGhB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AAIjB,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAElB,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,+BAA+B;AAC/B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY;AACZ,4CAA4C;AAC5C,kBAAkB,EAClB,qBAAqB;AACrB,4BAA4B;AAC5B,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAA;AA4DhB,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,oBAAoB;AACpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO;AACL,qBAAqB;AACrB,wBAAwB;AACxB,qBAAqB;AACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB;AACjB,YAAY;AACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,MAAM,CAAA;AAGb,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,SAAS,CAAA;AAIhB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AAGjB,qBAAqB;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAElB,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,+BAA+B;AAC/B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY;AACZ,4CAA4C;AAC5C,kBAAkB,EAClB,qBAAqB;AACrB,4BAA4B;AAC5B,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAoFhB,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,oBAAoB;AACpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAA"}
@@ -36,6 +36,10 @@ export declare function canUsePivot(info: LicenseInfo): boolean;
36
36
  * Check if license allows chart builder feature
37
37
  */
38
38
  export declare function canUseCharts(info: LicenseInfo): boolean;
39
+ /**
40
+ * Check if license allows AI Data Analyst feature
41
+ */
42
+ export declare function canUseAIAnalyst(info: LicenseInfo): boolean;
39
43
  /**
40
44
  * Check if license is pro (any tier)
41
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,UAAU,CAAA;AAmLxD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAqE1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG5D;AAqBD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAWrF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAE/E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,UAAU,CAAA;AAsLxD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsE1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG5D;AAqBD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAWrF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAE/E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKpD"}
@@ -8,6 +8,7 @@ const FREE_LICENSE = {
8
8
  sessionPersistence: false,
9
9
  noWatermark: false,
10
10
  charts: false, // Chart builder is Pro only
11
+ aiAnalyst: false, // AI Data Analyst is Pro only
11
12
  },
12
13
  };
13
14
  const INVALID_LICENSE = {
@@ -20,6 +21,7 @@ const INVALID_LICENSE = {
20
21
  sessionPersistence: false,
21
22
  noWatermark: false,
22
23
  charts: false,
24
+ aiAnalyst: false,
23
25
  },
24
26
  };
25
27
  const DEMO_LICENSE = {
@@ -32,6 +34,7 @@ const DEMO_LICENSE = {
32
34
  sessionPersistence: true,
33
35
  noWatermark: false, // Still show watermark in demo
34
36
  charts: true, // Demo can use charts
37
+ aiAnalyst: true, // Demo can use AI Analyst
35
38
  },
36
39
  };
37
40
  // Public key for license verification (ECDSA P-256)
@@ -202,6 +205,7 @@ export async function validateLicenseKey(key) {
202
205
  sessionPersistence: type !== 'free',
203
206
  noWatermark: type !== 'free',
204
207
  charts: type !== 'free',
208
+ aiAnalyst: type !== 'free',
205
209
  },
206
210
  };
207
211
  }
@@ -262,6 +266,12 @@ export function canUsePivot(info) {
262
266
  export function canUseCharts(info) {
263
267
  return info.features.charts;
264
268
  }
269
+ /**
270
+ * Check if license allows AI Data Analyst feature
271
+ */
272
+ export function canUseAIAnalyst(info) {
273
+ return info.features.aiAnalyst;
274
+ }
265
275
  /**
266
276
  * Check if license is pro (any tier)
267
277
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"AAUA,MAAM,YAAY,GAAgB;IAChC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE;QACR,KAAK,EAAE,IAAI,EAAE,gDAAgD;QAC7D,oBAAoB,EAAE,KAAK,EAAE,mCAAmC;QAChE,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,KAAK;QACzB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK,EAAE,4BAA4B;QAC3C,SAAS,EAAE,KAAK,EAAE,8BAA8B;KACjD;CACF,CAAA;AAED,MAAM,eAAe,GAAgB;IACnC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE;QACR,KAAK,EAAE,IAAI,EAAE,gDAAgD;QAC7D,oBAAoB,EAAE,KAAK;QAC3B,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,KAAK;QACzB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;KACjB;CACF,CAAA;AAED,MAAM,YAAY,GAAgB;IAChC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE;QACR,KAAK,EAAE,IAAI;QACX,oBAAoB,EAAE,IAAI;QAC1B,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,KAAK,EAAE,+BAA+B;QACnD,MAAM,EAAE,IAAI,EAAE,sBAAsB;QACpC,SAAS,EAAE,IAAI,EAAE,0BAA0B;KAC5C;CACF,CAAA;AAED,oDAAoD;AACpD,yEAAyE;AACzE,MAAM,cAAc,GAAG;;;yBAGE,CAAA;AAEzB;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,6CAA6C;IAC7C,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjE,wBAAwB;IACxB,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,cAAc,IAAI,GAAG,CAAA;IACvB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,GAAe;IAC/B,oEAAoE;IACpE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAA,CAAC,4BAA4B;IAE3C,SAAS;IACT,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;QACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,MAAM,EAAE,CAAA;IACR,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,CAAA;IACR,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,MAAM,IAAI,IAAI,CAAA;IAEd,SAAS;IACT,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;QACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,MAAM,EAAE,CAAA;IACR,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,CAAA;IACR,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IAExC,6CAA6C;IAC7C,yEAAyE;IACzE,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEhB,6BAA6B;IAC7B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAE1B,qBAAqB;IACrB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAChB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAEjB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,WAAW,GAAG,cAAc;aAC/B,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;aACzC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;aACvC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAErB,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAEjD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,MAAM,EACN,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,EAChC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EACtC,KAAK,EACL,CAAC,QAAQ,CAAC,CACX,CAAA;IACH,CAAC;IACD,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,SAAiB,EACjB,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAA;IAE1C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAA;QACzC,IAAI,CAAC,SAAS;YACZ,OAAO,KAAK,CAAA;QAEd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEvC,6DAA6D;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE/B,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAClC,SAAS,EACT,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAC7B,OAAO,CACR,CAAA;IACH,CAAC;IACD,MAAM,CAAC;QACL,wEAAwE;QACxE,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAClD,4BAA4B;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,qDAAqD;IACrD,4CAA4C;IAC5C,gEAAgE;IAChE,yFAAyF;IAEzF,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,sDAAsD;IACtD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,WAAW,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IAE5C,oDAAoD;IACpD,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,eAAe;IAClD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;IAEtD,yDAAyD;IACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAExF,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,8EAA8E;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAE5C,yBAAyB;IACzB,IAAI,IAAI,GAAgB,MAAM,CAAA;IAC9B,IAAI,QAAQ,KAAK,MAAM;QACrB,IAAI,GAAG,YAAY,CAAA;SAChB,IAAI,QAAQ,KAAK,MAAM;QAC1B,IAAI,GAAG,eAAe,CAAA;SACnB,IAAI,QAAQ,KAAK,MAAM;QAC1B,IAAI,GAAG,UAAU,CAAA;IAEnB,yEAAyE;IACzE,iEAAiE;IACjE,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,SAAS;QACT,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI,KAAK,MAAM;YACtB,oBAAoB,EAAE,IAAI,KAAK,MAAM;YACrC,cAAc,EAAE,IAAI,KAAK,MAAM;YAC/B,kBAAkB,EAAE,IAAI,KAAK,MAAM;YACnC,WAAW,EAAE,IAAI,KAAK,MAAM;YAC5B,MAAM,EAAE,IAAI,KAAK,MAAM;YACvB,SAAS,EAAE,IAAI,KAAK,MAAM;SAC3B;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,8DAA8D;IAC9D,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAA;AAC1F,CAAC;AAED,4CAA4C;AAC5C,MAAM,gBAAgB,GAAG,kEAAkE,CAAA;AAE3F;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,MAAc;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QACxD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACnF,CAAC;IACD,MAAM,CAAC;QACL,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAe;IACtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,IAAiB;IACrC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAiB,EAAE,MAAe;IACpE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,CAAC,IAAI,CACV,gBAAgB,OAAO,4BAA4B;UACjD,mDAAmD,CACtD,CAAA;AACH,CAAC"}