nttp 1.4.6 → 1.4.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/README.md +85 -1
- package/dist/cli/docs.d.ts +9 -0
- package/dist/cli/docs.d.ts.map +1 -0
- package/dist/cli/docs.js +437 -0
- package/dist/cli/docs.js.map +1 -0
- package/dist/cli/setup-ink.d.ts +15 -2
- package/dist/cli/setup-ink.d.ts.map +1 -1
- package/dist/cli/setup-ink.js +21 -3
- package/dist/cli/setup-ink.js.map +1 -1
- package/dist/cli/setup-non-interactive.d.ts +17 -0
- package/dist/cli/setup-non-interactive.d.ts.map +1 -0
- package/dist/cli/setup-non-interactive.js +166 -0
- package/dist/cli/setup-non-interactive.js.map +1 -0
- package/dist/cli.js +18 -2
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +99 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +173 -11
- package/dist/errors.js.map +1 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +73 -12
- package/dist/executor.js.map +1 -1
- package/dist/intent.d.ts.map +1 -1
- package/dist/intent.js +125 -17
- package/dist/intent.js.map +1 -1
- package/dist/llm.d.ts +25 -0
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +25 -0
- package/dist/llm.js.map +1 -1
- package/package.json +1 -1
package/dist/executor.js
CHANGED
|
@@ -26,33 +26,94 @@ const SQL_GENERATION_JSON_SCHEMA = {
|
|
|
26
26
|
additionalProperties: false,
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
29
|
-
* System prompt for SQL generation.
|
|
29
|
+
* System prompt for SQL generation with Claude 4.x best practices.
|
|
30
|
+
* Enhanced with context, safety reasoning, and model self-knowledge.
|
|
30
31
|
*/
|
|
31
|
-
const SQL_GENERATION_SYSTEM_PROMPT = `You are an expert SQL generator.
|
|
32
|
-
|
|
32
|
+
const SQL_GENERATION_SYSTEM_PROMPT = `You are an expert SQL generator specializing in safe, read-only database queries. Your role is critical for security: you translate user intents into SQL while preventing any data modification or security vulnerabilities.
|
|
33
|
+
|
|
34
|
+
WHY THIS MATTERS:
|
|
35
|
+
- User data protection: Generated queries must never modify, delete, or corrupt data
|
|
36
|
+
- Security: Parameterized queries prevent SQL injection attacks
|
|
37
|
+
- Performance: Proper limits prevent resource exhaustion
|
|
38
|
+
- Reliability: Type-safe queries ensure consistent results
|
|
33
39
|
|
|
34
40
|
{schema}
|
|
35
41
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
+
CORE REQUIREMENTS (all must be satisfied):
|
|
43
|
+
|
|
44
|
+
1. SAFETY - Generate ONLY read-only SELECT queries
|
|
45
|
+
WHY: Write operations could corrupt user data or violate security policies
|
|
46
|
+
- ✅ Allowed: SELECT, WITH (for CTEs)
|
|
47
|
+
- ❌ Forbidden: UPDATE, DELETE, DROP, ALTER, INSERT, CREATE, TRUNCATE
|
|
48
|
+
- Rationale: Even accidental data modification could cause irreversible damage
|
|
49
|
+
|
|
50
|
+
2. PARAMETERIZATION - Use ? placeholders for ALL dynamic values
|
|
51
|
+
WHY: Prevents SQL injection attacks that could expose or delete all data
|
|
52
|
+
- ✅ Correct: "WHERE status = ?" with params: ["active"]
|
|
53
|
+
- ❌ Dangerous: "WHERE status = 'active'" (vulnerable to injection)
|
|
54
|
+
- Rationale: Parameterized queries ensure values are safely escaped
|
|
55
|
+
|
|
56
|
+
3. LIMITS - Always include LIMIT clause (max 1000)
|
|
57
|
+
WHY: Prevents accidental full table scans that could crash the database
|
|
58
|
+
- Default: Use intent.limit if provided, otherwise 100
|
|
59
|
+
- Maximum: Never exceed 1000 rows
|
|
60
|
+
- Rationale: Large result sets consume excessive memory and network bandwidth
|
|
61
|
+
|
|
62
|
+
4. JOINS - Use explicit JOINs for table relationships
|
|
63
|
+
WHY: Explicit joins are more readable and prevent accidental cross joins
|
|
64
|
+
- Prefer: INNER JOIN, LEFT JOIN with ON conditions
|
|
65
|
+
- Avoid: Implicit joins via WHERE (e.g., FROM a, b WHERE a.id = b.id)
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
5. TYPE SAFETY - Match filter types to schema column types
|
|
68
|
+
WHY: Type mismatches cause query failures or unexpected results
|
|
69
|
+
- Integers: Use numeric literals, not strings
|
|
70
|
+
- Dates: Use proper date formats
|
|
71
|
+
- Booleans: Use TRUE/FALSE or 1/0 based on database
|
|
72
|
+
|
|
73
|
+
RESPONSE FORMAT:
|
|
74
|
+
Return valid JSON with exactly these fields:
|
|
44
75
|
{
|
|
45
76
|
"sql": "SELECT ... FROM ... WHERE ... LIMIT ?",
|
|
46
77
|
"params": [value1, value2, ...]
|
|
47
78
|
}
|
|
48
79
|
|
|
49
|
-
|
|
80
|
+
EXAMPLES WITH REASONING:
|
|
81
|
+
|
|
82
|
+
Example 1 - Simple list query:
|
|
50
83
|
Intent: {"entity": "users", "operation": "list", "filters": {"status": "active"}, "limit": 10}
|
|
84
|
+
Thought process:
|
|
85
|
+
- Entity is "users" → SELECT FROM users
|
|
86
|
+
- Filter on status → WHERE status = ? (parameterized)
|
|
87
|
+
- Limit specified → LIMIT ?
|
|
88
|
+
- Both values go in params array
|
|
51
89
|
Response: {"sql": "SELECT * FROM users WHERE status = ? LIMIT ?", "params": ["active", 10]}
|
|
52
90
|
|
|
91
|
+
Example 2 - Count with filter:
|
|
53
92
|
Intent: {"entity": "orders", "operation": "count", "filters": {"status": "pending"}}
|
|
93
|
+
Thought process:
|
|
94
|
+
- Count operation → SELECT COUNT(*) as count
|
|
95
|
+
- Filter on status → WHERE status = ? (parameterized)
|
|
96
|
+
- No limit specified, but COUNT returns single row (limit not needed)
|
|
54
97
|
Response: {"sql": "SELECT COUNT(*) as count FROM orders WHERE status = ?", "params": ["pending"]}
|
|
55
|
-
|
|
98
|
+
|
|
99
|
+
Example 3 - Join with sort:
|
|
100
|
+
Intent: {"entity": "orders", "operation": "list", "filters": {}, "limit": 20, "sort": "created_at:desc"}
|
|
101
|
+
Thought process:
|
|
102
|
+
- Entity is orders → SELECT FROM orders
|
|
103
|
+
- No filters → No WHERE clause
|
|
104
|
+
- Sort specified → ORDER BY created_at DESC
|
|
105
|
+
- Limit specified → LIMIT ?
|
|
106
|
+
Response: {"sql": "SELECT * FROM orders ORDER BY created_at DESC LIMIT ?", "params": [20]}
|
|
107
|
+
|
|
108
|
+
Example 4 - Specific fields:
|
|
109
|
+
Intent: {"entity": "users", "operation": "list", "filters": {}, "fields": ["id", "email", "name"], "limit": 50}
|
|
110
|
+
Thought process:
|
|
111
|
+
- Specific fields requested → SELECT id, email, name (not *)
|
|
112
|
+
- No filters → No WHERE clause
|
|
113
|
+
- Limit specified → LIMIT ?
|
|
114
|
+
Response: {"sql": "SELECT id, email, name FROM users LIMIT ?", "params": [50]}
|
|
115
|
+
|
|
116
|
+
Your expertise ensures users can query their data safely and efficiently.`;
|
|
56
117
|
/**
|
|
57
118
|
* Service for executing queries and managing SQL generation.
|
|
58
119
|
*/
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACR,MAAM,aAAa,CAAC;AAOrB;;GAEG;AACH,MAAM,0BAA0B,GAAG;IACjC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0BAA0B;SACxC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;aACzD;YACD,WAAW,EAAE,8BAA8B;SAC5C;KACF;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3B,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/intent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAyB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyCpF;;GAEG;AACH,UAAU,SAAS;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAyB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyCpF;;GAEG;AACH,UAAU,SAAS;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;AA8ID;;GAEG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU;IAEnC;;;;;;;OAOG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CtE;;;;;;;;OAQG;IACH,mBAAmB,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM;IAkDlD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAKzC"}
|
package/dist/intent.js
CHANGED
|
@@ -41,14 +41,28 @@ const INTENT_JSON_SCHEMA = {
|
|
|
41
41
|
additionalProperties: false,
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
|
-
* System prompt for intent parsing.
|
|
44
|
+
* System prompt for intent parsing with Claude 4.x best practices.
|
|
45
|
+
* Enhanced with context, reasoning guidance, and model self-knowledge.
|
|
45
46
|
*/
|
|
46
|
-
const INTENT_PARSE_SYSTEM_PROMPT = `You are an expert
|
|
47
|
-
|
|
47
|
+
const INTENT_PARSE_SYSTEM_PROMPT = `You are an expert natural language understanding system specializing in database query intent extraction. Your role is to bridge human communication and database operations by accurately interpreting user requests.
|
|
48
|
+
|
|
49
|
+
WHY THIS MATTERS:
|
|
50
|
+
- Accuracy: Incorrect intent parsing leads to wrong results or failed queries
|
|
51
|
+
- User trust: Users rely on you to understand their natural phrasing
|
|
52
|
+
- Efficiency: Proper normalization enables intelligent caching
|
|
53
|
+
- Data safety: Correct entity identification prevents accessing wrong tables
|
|
48
54
|
|
|
49
55
|
{schema}
|
|
50
56
|
|
|
51
|
-
|
|
57
|
+
YOUR TASK:
|
|
58
|
+
Parse natural language queries into structured intents that can be safely converted to SQL. You excel at:
|
|
59
|
+
- Understanding implicit information (e.g., "active users" implies status filter)
|
|
60
|
+
- Normalizing different phrasings to the same intent (e.g., "get users" = "show users")
|
|
61
|
+
- Extracting numeric limits and sorting preferences
|
|
62
|
+
- Identifying aggregation operations (count, sum, average)
|
|
63
|
+
|
|
64
|
+
RESPONSE STRUCTURE:
|
|
65
|
+
Return JSON matching this exact schema:
|
|
52
66
|
{
|
|
53
67
|
"entity": "<table_name>",
|
|
54
68
|
"operation": "<list|count|aggregate|filter>",
|
|
@@ -58,19 +72,113 @@ Return JSON with this exact structure:
|
|
|
58
72
|
"sort": "<field:asc|desc>" or null
|
|
59
73
|
}
|
|
60
74
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- "
|
|
72
|
-
- "count
|
|
73
|
-
|
|
75
|
+
FIELD REQUIREMENTS:
|
|
76
|
+
|
|
77
|
+
1. entity (string, required)
|
|
78
|
+
WHY: Determines which database table to query
|
|
79
|
+
- Must be a valid table name from the schema above
|
|
80
|
+
- Use singular or plural form as defined in schema
|
|
81
|
+
- Common variations: users/user, products/product, orders/order
|
|
82
|
+
|
|
83
|
+
2. operation (string, required)
|
|
84
|
+
WHY: Determines the type of SQL query to generate
|
|
85
|
+
- "list": Retrieve rows (SELECT * FROM ...)
|
|
86
|
+
- "count": Count rows (SELECT COUNT(*) FROM ...)
|
|
87
|
+
- "aggregate": Sum, average, min, max operations
|
|
88
|
+
- "filter": Same as list, but emphasizes filtering focus
|
|
89
|
+
|
|
90
|
+
3. filters (object, optional, default: {})
|
|
91
|
+
WHY: Extracts conditions to narrow results
|
|
92
|
+
- Key: field name from schema
|
|
93
|
+
- Value: expected value (as string)
|
|
94
|
+
- Implicit filters: "active users" → {"status": "active"}
|
|
95
|
+
- Explicit filters: "users from California" → {"state": "California"}
|
|
96
|
+
- Multiple filters: "active users from NY" → {"status": "active", "state": "NY"}
|
|
97
|
+
|
|
98
|
+
4. limit (integer or null, optional)
|
|
99
|
+
WHY: Controls result set size for performance
|
|
100
|
+
- Extract explicit numbers: "5 users", "top 10 products"
|
|
101
|
+
- Common phrases: "top N" = N, "first N" = N
|
|
102
|
+
- null if not specified (system will apply default)
|
|
103
|
+
|
|
104
|
+
5. fields (array of strings or null, optional)
|
|
105
|
+
WHY: Allows selecting specific columns instead of all
|
|
106
|
+
- null means "all fields" (SELECT *)
|
|
107
|
+
- Array means specific fields (SELECT field1, field2)
|
|
108
|
+
- Example: "show user emails" → ["email"]
|
|
109
|
+
|
|
110
|
+
6. sort (string or null, optional)
|
|
111
|
+
WHY: Specifies result ordering
|
|
112
|
+
- Format: "field:direction" where direction is "asc" or "desc"
|
|
113
|
+
- Extract from phrases: "newest first" → "created_at:desc"
|
|
114
|
+
- "highest price" → "price:desc", "alphabetically" → "name:asc"
|
|
115
|
+
- null if not mentioned
|
|
116
|
+
|
|
117
|
+
EXAMPLES WITH REASONING:
|
|
118
|
+
|
|
119
|
+
Example 1 - Simple with implicit filter:
|
|
120
|
+
Query: "get all active users"
|
|
121
|
+
Reasoning:
|
|
122
|
+
- "users" → entity: "users"
|
|
123
|
+
- "get all" → operation: "list" (retrieve rows)
|
|
124
|
+
- "active" → implicit filter on status field
|
|
125
|
+
- No limit mentioned → limit: null
|
|
126
|
+
- No specific fields → fields: null
|
|
127
|
+
- No sorting → sort: null
|
|
128
|
+
Result: {"entity": "users", "operation": "list", "filters": {"status": "active"}, "limit": null, "fields": null, "sort": null}
|
|
129
|
+
|
|
130
|
+
Example 2 - With explicit limit:
|
|
131
|
+
Query: "show me 10 products"
|
|
132
|
+
Reasoning:
|
|
133
|
+
- "products" → entity: "products"
|
|
134
|
+
- "show me" → operation: "list"
|
|
135
|
+
- "10" → explicit limit
|
|
136
|
+
- No filters → filters: {}
|
|
137
|
+
Result: {"entity": "products", "operation": "list", "filters": {}, "limit": 10, "fields": null, "sort": null}
|
|
138
|
+
|
|
139
|
+
Example 3 - Count operation:
|
|
140
|
+
Query: "count pending orders"
|
|
141
|
+
Reasoning:
|
|
142
|
+
- "orders" → entity: "orders"
|
|
143
|
+
- "count" → operation: "count" (aggregation)
|
|
144
|
+
- "pending" → implicit filter on status
|
|
145
|
+
- Count operations don't need limit
|
|
146
|
+
Result: {"entity": "orders", "operation": "count", "filters": {"status": "pending"}, "limit": null, "fields": null, "sort": null}
|
|
147
|
+
|
|
148
|
+
Example 4 - Sorting and limit:
|
|
149
|
+
Query: "top 5 most expensive products"
|
|
150
|
+
Reasoning:
|
|
151
|
+
- "products" → entity: "products"
|
|
152
|
+
- "top 5" → limit: 5
|
|
153
|
+
- "most expensive" → sort by price descending
|
|
154
|
+
- operation: "list" (retrieving rows)
|
|
155
|
+
Result: {"entity": "products", "operation": "list", "filters": {}, "limit": 5, "fields": null, "sort": "price:desc"}
|
|
156
|
+
|
|
157
|
+
Example 5 - Specific fields:
|
|
158
|
+
Query: "show user emails and names"
|
|
159
|
+
Reasoning:
|
|
160
|
+
- "user" → entity: "users"
|
|
161
|
+
- "show" → operation: "list"
|
|
162
|
+
- "emails and names" → specific fields requested
|
|
163
|
+
Result: {"entity": "users", "operation": "list", "filters": {}, "limit": null, "fields": ["email", "name"], "sort": null}
|
|
164
|
+
|
|
165
|
+
Example 6 - Complex with multiple filters:
|
|
166
|
+
Query: "active premium users from California"
|
|
167
|
+
Reasoning:
|
|
168
|
+
- "users" → entity: "users"
|
|
169
|
+
- "active" → filter: status = "active"
|
|
170
|
+
- "premium" → filter: tier = "premium" (or subscription_type)
|
|
171
|
+
- "from California" → filter: state = "California"
|
|
172
|
+
Result: {"entity": "users", "operation": "list", "filters": {"status": "active", "tier": "premium", "state": "California"}, "limit": null, "fields": null, "sort": null}
|
|
173
|
+
|
|
174
|
+
IMPORTANT GUIDELINES:
|
|
175
|
+
- When uncertain about a filter field name, use the most obvious choice from schema
|
|
176
|
+
- Normalize different phrasings: "get", "show", "list", "retrieve" all mean operation: "list"
|
|
177
|
+
- Be generous with implicit filters: common adjectives often map to status fields
|
|
178
|
+
- Always return valid JSON with all required fields
|
|
179
|
+
- Use null for optional fields when not specified, don't omit them
|
|
180
|
+
|
|
181
|
+
Your expertise in natural language understanding makes database queries accessible to everyone.`;
|
|
74
182
|
/**
|
|
75
183
|
* Service for parsing natural language into structured intents.
|
|
76
184
|
*/
|
package/dist/intent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIzD;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,6DAA6D;SAChE;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC;YAC9C,WAAW,EAAE,gBAAgB;SAC9B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sCAAsC;YACnD,oBAAoB,EAAE,KAAK;SAC5B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;YACzB,WAAW,EAAE,mCAAmC;SACjD;QACD,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,mDAAmD;SACjE;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,uDAAuD;SACrE;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;IACjC,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAcF
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}
|
package/dist/llm.d.ts
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LLM integration layer using AI SDK for provider-agnostic support.
|
|
3
3
|
* Implements structured outputs for guaranteed schema compliance.
|
|
4
|
+
*
|
|
5
|
+
* MODEL SELECTION GUIDE (based on Claude 4.x capabilities):
|
|
6
|
+
*
|
|
7
|
+
* Anthropic Claude:
|
|
8
|
+
* - claude-sonnet-4-5: Best for SQL generation - excellent instruction following,
|
|
9
|
+
* strong reasoning, reliable structured outputs. Recommended default.
|
|
10
|
+
* - claude-opus-4-5: Most capable but slower - use for complex multi-table queries
|
|
11
|
+
* - claude-haiku-4: Fastest but less capable - use for simple lookups
|
|
12
|
+
*
|
|
13
|
+
* OpenAI:
|
|
14
|
+
* - gpt-4o: Fast and reliable for structured outputs
|
|
15
|
+
* - gpt-4-turbo: Good balance of speed and quality
|
|
16
|
+
* - gpt-3.5-turbo: Fastest but may struggle with complex schemas
|
|
17
|
+
*
|
|
18
|
+
* Cohere:
|
|
19
|
+
* - command-r-plus: Strong for enterprise use cases
|
|
20
|
+
* - command-r: Good balance of cost and performance
|
|
21
|
+
*
|
|
22
|
+
* Mistral:
|
|
23
|
+
* - mistral-large-latest: Competitive with GPT-4
|
|
24
|
+
* - mistral-medium: Good for simple queries
|
|
25
|
+
*
|
|
26
|
+
* Google Gemini:
|
|
27
|
+
* - gemini-pro: Solid general-purpose model
|
|
28
|
+
* - gemini-ultra: Most capable for complex reasoning
|
|
4
29
|
*/
|
|
5
30
|
import type { JsonValue, JsonObject } from './utils.js';
|
|
6
31
|
export interface LLMConfig {
|
package/dist/llm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,SAAS;IAK7B;;;OAGG;YACW,eAAe;IAa7B;;OAEG;YACW,SAAS;IAwDvB;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,CAAC,SAAS,SAAS,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,MAAY,EACzB,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,CAAC,CAAC;IAsCb;;;;;;;;;OASG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAY,EACzB,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,MAAM,CAAC;CA6BnB"}
|
package/dist/llm.js
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LLM integration layer using AI SDK for provider-agnostic support.
|
|
3
3
|
* Implements structured outputs for guaranteed schema compliance.
|
|
4
|
+
*
|
|
5
|
+
* MODEL SELECTION GUIDE (based on Claude 4.x capabilities):
|
|
6
|
+
*
|
|
7
|
+
* Anthropic Claude:
|
|
8
|
+
* - claude-sonnet-4-5: Best for SQL generation - excellent instruction following,
|
|
9
|
+
* strong reasoning, reliable structured outputs. Recommended default.
|
|
10
|
+
* - claude-opus-4-5: Most capable but slower - use for complex multi-table queries
|
|
11
|
+
* - claude-haiku-4: Fastest but less capable - use for simple lookups
|
|
12
|
+
*
|
|
13
|
+
* OpenAI:
|
|
14
|
+
* - gpt-4o: Fast and reliable for structured outputs
|
|
15
|
+
* - gpt-4-turbo: Good balance of speed and quality
|
|
16
|
+
* - gpt-3.5-turbo: Fastest but may struggle with complex schemas
|
|
17
|
+
*
|
|
18
|
+
* Cohere:
|
|
19
|
+
* - command-r-plus: Strong for enterprise use cases
|
|
20
|
+
* - command-r: Good balance of cost and performance
|
|
21
|
+
*
|
|
22
|
+
* Mistral:
|
|
23
|
+
* - mistral-large-latest: Competitive with GPT-4
|
|
24
|
+
* - mistral-medium: Good for simple queries
|
|
25
|
+
*
|
|
26
|
+
* Google Gemini:
|
|
27
|
+
* - gemini-pro: Solid general-purpose model
|
|
28
|
+
* - gemini-ultra: Most capable for complex reasoning
|
|
4
29
|
*/
|
|
5
30
|
import { generateText } from 'ai';
|
|
6
31
|
import { LLMError } from './errors.js';
|
package/dist/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
|