@layer-ai/core 2.0.8 → 2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAqPpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AA2QpC,eAAe,MAAM,CAAC"}
@@ -168,6 +168,20 @@ router.post('/', authenticate, async (req, res) => {
168
168
  errorMessage: null,
169
169
  userAgent: req.headers['user-agent'] || null,
170
170
  ipAddress: req.ip || null,
171
+ requestPayload: {
172
+ gateId: request.gateId,
173
+ type: request.type,
174
+ model: request.model,
175
+ data: request.data,
176
+ metadata: request.metadata,
177
+ },
178
+ responsePayload: {
179
+ content: result.content,
180
+ model: result.model,
181
+ usage: result.usage,
182
+ cost: result.cost,
183
+ finishReason: result.finishReason,
184
+ },
171
185
  }).catch(err => console.error('Failed to log request:', err));
172
186
  // Return LayerResponse with additional metadata
173
187
  const response = {
@@ -195,6 +209,14 @@ router.post('/', authenticate, async (req, res) => {
195
209
  errorMessage,
196
210
  userAgent: req.headers['user-agent'] || null,
197
211
  ipAddress: req.ip || null,
212
+ requestPayload: request ? {
213
+ gateId: request.gateId,
214
+ type: request.type,
215
+ model: request.model,
216
+ data: request.data,
217
+ metadata: request.metadata,
218
+ } : null,
219
+ responsePayload: null,
198
220
  }).catch(err => console.error('Failed to log request:', err));
199
221
  console.error('Chat completion error:', error);
200
222
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/embeddings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AA8OpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/embeddings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAmQpC,eAAe,MAAM,CAAC"}
@@ -161,6 +161,19 @@ router.post('/', authenticate, async (req, res) => {
161
161
  errorMessage: null,
162
162
  userAgent: req.headers['user-agent'] || null,
163
163
  ipAddress: req.ip || null,
164
+ requestPayload: {
165
+ gateId: request.gateId,
166
+ type: request.type,
167
+ model: request.model,
168
+ data: request.data,
169
+ metadata: request.metadata,
170
+ },
171
+ responsePayload: {
172
+ embeddings: result.embeddings,
173
+ model: result.model,
174
+ usage: result.usage,
175
+ cost: result.cost,
176
+ },
164
177
  }).catch(err => console.error('Failed to log request:', err));
165
178
  // Return LayerResponse with additional metadata
166
179
  const response = {
@@ -188,6 +201,14 @@ router.post('/', authenticate, async (req, res) => {
188
201
  errorMessage,
189
202
  userAgent: req.headers['user-agent'] || null,
190
203
  ipAddress: req.ip || null,
204
+ requestPayload: request ? {
205
+ gateId: request.gateId,
206
+ type: request.type,
207
+ model: request.model,
208
+ data: request.data,
209
+ metadata: request.metadata,
210
+ } : null,
211
+ responsePayload: null,
191
212
  }).catch(err => console.error('Failed to log request:', err));
192
213
  console.error('Embeddings error:', error);
193
214
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAuOpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AA4PpC,eAAe,MAAM,CAAC"}
@@ -155,6 +155,19 @@ router.post('/', authenticate, async (req, res) => {
155
155
  errorMessage: null,
156
156
  userAgent: req.headers['user-agent'] || null,
157
157
  ipAddress: req.ip || null,
158
+ requestPayload: {
159
+ gateId: request.gateId,
160
+ type: request.type,
161
+ model: request.model,
162
+ data: request.data,
163
+ metadata: request.metadata,
164
+ },
165
+ responsePayload: {
166
+ images: result.images,
167
+ model: result.model,
168
+ usage: result.usage,
169
+ cost: result.cost,
170
+ },
158
171
  }).catch(err => console.error('Failed to log request:', err));
159
172
  // Return LayerResponse with additional metadata
160
173
  const response = {
@@ -182,6 +195,14 @@ router.post('/', authenticate, async (req, res) => {
182
195
  errorMessage,
183
196
  userAgent: req.headers['user-agent'] || null,
184
197
  ipAddress: req.ip || null,
198
+ requestPayload: request ? {
199
+ gateId: request.gateId,
200
+ type: request.type,
201
+ model: request.model,
202
+ data: request.data,
203
+ metadata: request.metadata,
204
+ } : null,
205
+ responsePayload: null,
185
206
  }).catch(err => console.error('Failed to log request:', err));
186
207
  console.error('Image generation error:', error);
187
208
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/ocr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAgOpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/ocr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAqPpC,eAAe,MAAM,CAAC"}
@@ -149,6 +149,19 @@ router.post('/', authenticate, async (req, res) => {
149
149
  errorMessage: null,
150
150
  userAgent: req.headers['user-agent'] || null,
151
151
  ipAddress: req.ip || null,
152
+ requestPayload: {
153
+ gateId: request.gateId,
154
+ type: request.type,
155
+ model: request.model,
156
+ data: request.data,
157
+ metadata: request.metadata,
158
+ },
159
+ responsePayload: {
160
+ ocr: result.ocr,
161
+ model: result.model,
162
+ usage: result.usage,
163
+ cost: result.cost,
164
+ },
152
165
  }).catch(err => console.error('Failed to log request:', err));
153
166
  // Return LayerResponse with additional metadata
154
167
  const response = {
@@ -176,6 +189,14 @@ router.post('/', authenticate, async (req, res) => {
176
189
  errorMessage,
177
190
  userAgent: req.headers['user-agent'] || null,
178
191
  ipAddress: req.ip || null,
192
+ requestPayload: request ? {
193
+ gateId: request.gateId,
194
+ type: request.type,
195
+ model: request.model,
196
+ data: request.data,
197
+ metadata: request.metadata,
198
+ } : null,
199
+ responsePayload: null,
179
200
  }).catch(err => console.error('Failed to log request:', err));
180
201
  console.error('OCR error:', error);
181
202
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/tts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AA4NpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/tts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAiPpC,eAAe,MAAM,CAAC"}
@@ -145,6 +145,19 @@ router.post('/', authenticate, async (req, res) => {
145
145
  errorMessage: null,
146
146
  userAgent: req.headers['user-agent'] || null,
147
147
  ipAddress: req.ip || null,
148
+ requestPayload: {
149
+ gateId: request.gateId,
150
+ type: request.type,
151
+ model: request.model,
152
+ data: request.data,
153
+ metadata: request.metadata,
154
+ },
155
+ responsePayload: {
156
+ audio: result.audio,
157
+ model: result.model,
158
+ usage: result.usage,
159
+ cost: result.cost,
160
+ },
148
161
  }).catch(err => console.error('Failed to log request:', err));
149
162
  // Return LayerResponse with additional metadata
150
163
  const response = {
@@ -172,6 +185,14 @@ router.post('/', authenticate, async (req, res) => {
172
185
  errorMessage,
173
186
  userAgent: req.headers['user-agent'] || null,
174
187
  ipAddress: req.ip || null,
188
+ requestPayload: request ? {
189
+ gateId: request.gateId,
190
+ type: request.type,
191
+ model: request.model,
192
+ data: request.data,
193
+ metadata: request.metadata,
194
+ } : null,
195
+ responsePayload: null,
175
196
  }).catch(err => console.error('Failed to log request:', err));
176
197
  console.error('TTS error:', error);
177
198
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AAuOpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/routes/v3/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,QAAA,MAAM,MAAM,EAAE,UAAqB,CAAC;AA4PpC,eAAe,MAAM,CAAC"}
@@ -155,6 +155,19 @@ router.post('/', authenticate, async (req, res) => {
155
155
  errorMessage: null,
156
156
  userAgent: req.headers['user-agent'] || null,
157
157
  ipAddress: req.ip || null,
158
+ requestPayload: {
159
+ gateId: request.gateId,
160
+ type: request.type,
161
+ model: request.model,
162
+ data: request.data,
163
+ metadata: request.metadata,
164
+ },
165
+ responsePayload: {
166
+ videos: result.videos,
167
+ model: result.model,
168
+ usage: result.usage,
169
+ cost: result.cost,
170
+ },
158
171
  }).catch(err => console.error('Failed to log request:', err));
159
172
  // Return LayerResponse with additional metadata
160
173
  const response = {
@@ -182,6 +195,14 @@ router.post('/', authenticate, async (req, res) => {
182
195
  errorMessage,
183
196
  userAgent: req.headers['user-agent'] || null,
184
197
  ipAddress: req.ip || null,
198
+ requestPayload: request ? {
199
+ gateId: request.gateId,
200
+ type: request.type,
201
+ model: request.model,
202
+ data: request.data,
203
+ metadata: request.metadata,
204
+ } : null,
205
+ responsePayload: null,
185
206
  }).catch(err => console.error('Failed to log request:', err));
186
207
  console.error('Video generation error:', error);
187
208
  res.status(500).json({ error: 'internal_error', message: errorMessage });
@@ -1 +1 @@
1
- {"version":3,"file":"task-analysis.d.ts","sourceRoot":"","sources":["../../src/services/task-analysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAmC,MAAM,eAAe,CAAC;AAqD9F,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,YAAY,CAAC,CA6GvB"}
1
+ {"version":3,"file":"task-analysis.d.ts","sourceRoot":"","sources":["../../src/services/task-analysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAmC,MAAM,eAAe,CAAC;AA2D9F,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,YAAY,CAAC,CAkHvB"}
@@ -20,8 +20,13 @@ AVAILABLE TASK TYPES:
20
20
 
21
21
  Return ONLY the task type as a single word, nothing else.`;
22
22
  try {
23
+ // Smart routing model - upgraded to Sonnet 4.5 for better recommendations
24
+ // Can be overridden via SMART_ROUTING_MODEL environment variable
25
+ // Default: claude-sonnet-4-5-20250929 (~$3/1M tokens vs Haiku ~$0.25/1M)
26
+ // Cost impact is minimal since smart routing is infrequent (gate creation/reanalysis)
27
+ const smartRoutingModel = process.env.SMART_ROUTING_MODEL || 'claude-sonnet-4-5-20250929';
23
28
  const response = await anthropic.messages.create({
24
- model: 'claude-haiku-4-5-20251001',
29
+ model: smartRoutingModel,
25
30
  max_tokens: 50,
26
31
  temperature: 0.0,
27
32
  messages: [{
@@ -101,8 +106,12 @@ Return JSON with:
101
106
  "reasoning": "why these models work for this task and user preferences"
102
107
  }`;
103
108
  try {
109
+ // Smart routing model - upgraded to Sonnet 4.5 for superior analysis quality
110
+ // Can be overridden via SMART_ROUTING_MODEL environment variable
111
+ // Default: claude-sonnet-4-5-20250929 for more nuanced model recommendations
112
+ const smartRoutingModel = process.env.SMART_ROUTING_MODEL || 'claude-sonnet-4-5-20250929';
104
113
  const response = await anthropic.messages.create({
105
- model: 'claude-haiku-4-5-20251001',
114
+ model: smartRoutingModel,
106
115
  max_tokens: 2000,
107
116
  temperature: 0.0,
108
117
  messages: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layer-ai/core",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "Core API routes and services for Layer AI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "nanoid": "^5.0.4",
37
37
  "openai": "^4.24.0",
38
38
  "pg": "^8.11.3",
39
- "@layer-ai/sdk": "^2.5.1"
39
+ "@layer-ai/sdk": "^2.5.2"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/bcryptjs": "^2.4.6",