ecomcoder-cli 1.2.6 → 1.2.7
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/lib/api-client.d.ts +8 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +24 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/pinecone-client.d.ts.map +1 -1
- package/dist/lib/pinecone-client.js +93 -7
- package/dist/lib/pinecone-client.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -24,4 +24,12 @@ export declare function getSessionId(explicitSessionId?: string): string;
|
|
|
24
24
|
export declare function getPineconeCredentials(backendUrlOverride?: string): Promise<{
|
|
25
25
|
apiKey: string;
|
|
26
26
|
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Fetch Supabase credentials from the backend
|
|
29
|
+
* Used for logging assistant queries
|
|
30
|
+
*/
|
|
31
|
+
export declare function getSupabaseCredentials(backendUrlOverride?: string): Promise<{
|
|
32
|
+
url: string;
|
|
33
|
+
anonKey: string;
|
|
34
|
+
}>;
|
|
27
35
|
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAyC7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBrG"}
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAyC7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBrG;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBnH"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -80,4 +80,28 @@ export async function getPineconeCredentials(backendUrlOverride) {
|
|
|
80
80
|
throw new Error(`Failed to fetch Pinecone credentials: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Fetch Supabase credentials from the backend
|
|
85
|
+
* Used for logging assistant queries
|
|
86
|
+
*/
|
|
87
|
+
export async function getSupabaseCredentials(backendUrlOverride) {
|
|
88
|
+
const backendURL = backendUrlOverride || process.env.BACKEND_URL;
|
|
89
|
+
if (!backendURL) {
|
|
90
|
+
throw new Error('BACKEND_URL not set');
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const response = await fetch(`${backendURL}/api/internal/supabase-credentials`);
|
|
94
|
+
if (!response.ok) {
|
|
95
|
+
throw new Error(`Failed to get Supabase credentials: ${response.status}`);
|
|
96
|
+
}
|
|
97
|
+
const data = await response.json();
|
|
98
|
+
if (!data.url || !data.anonKey) {
|
|
99
|
+
throw new Error('Invalid Supabase credentials returned');
|
|
100
|
+
}
|
|
101
|
+
return { url: data.url, anonKey: data.anonKey };
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw new Error(`Failed to fetch Supabase credentials: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
83
107
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinecone-client.d.ts","sourceRoot":"","sources":["../../src/lib/pinecone-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pinecone-client.d.ts","sourceRoot":"","sources":["../../src/lib/pinecone-client.ts"],"names":[],"mappings":"AAqEA,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CvF"}
|
|
@@ -1,11 +1,97 @@
|
|
|
1
1
|
import { Pinecone } from '@pinecone-database/pinecone';
|
|
2
|
+
import { createClient } from '@supabase/supabase-js';
|
|
3
|
+
import { getSupabaseCredentials } from './api-client.js';
|
|
4
|
+
// Cached Supabase client for logging (fetched once, reused)
|
|
5
|
+
let loggingClient = null;
|
|
6
|
+
let credentialsFetched = false;
|
|
7
|
+
let credentialsFetchPromise = null;
|
|
8
|
+
// Initialize Supabase client (lazy, fetches from backend once)
|
|
9
|
+
async function initLoggingClient() {
|
|
10
|
+
if (credentialsFetched)
|
|
11
|
+
return;
|
|
12
|
+
// If already fetching, wait for that fetch
|
|
13
|
+
if (credentialsFetchPromise) {
|
|
14
|
+
await credentialsFetchPromise;
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
credentialsFetchPromise = (async () => {
|
|
18
|
+
try {
|
|
19
|
+
const { url, anonKey } = await getSupabaseCredentials();
|
|
20
|
+
loggingClient = createClient(url, anonKey);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Silent fail - logging is optional
|
|
24
|
+
loggingClient = null;
|
|
25
|
+
}
|
|
26
|
+
credentialsFetched = true;
|
|
27
|
+
})();
|
|
28
|
+
await credentialsFetchPromise;
|
|
29
|
+
}
|
|
30
|
+
// Fire-and-forget logging - does NOT block the main response
|
|
31
|
+
function logToSupabase(data) {
|
|
32
|
+
// Non-blocking: wrap in async IIFE, fire and forget
|
|
33
|
+
(async () => {
|
|
34
|
+
try {
|
|
35
|
+
await initLoggingClient();
|
|
36
|
+
if (!loggingClient)
|
|
37
|
+
return;
|
|
38
|
+
await loggingClient.from('assistant_logs').insert({
|
|
39
|
+
session_id: process.env.SESSION_ID || 'unknown',
|
|
40
|
+
query: data.query,
|
|
41
|
+
response: data.response,
|
|
42
|
+
citations: data.citations,
|
|
43
|
+
prompt_tokens: data.prompt_tokens,
|
|
44
|
+
completion_tokens: data.completion_tokens,
|
|
45
|
+
total_tokens: data.total_tokens,
|
|
46
|
+
latency_ms: data.latency_ms,
|
|
47
|
+
success: data.success,
|
|
48
|
+
error_message: data.error_message || null,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Silent fail - never blocks or throws
|
|
53
|
+
}
|
|
54
|
+
})();
|
|
55
|
+
}
|
|
2
56
|
export async function searchDocsPinecone(apiKey, query) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
57
|
+
const start = Date.now();
|
|
58
|
+
try {
|
|
59
|
+
const pc = new Pinecone({ apiKey });
|
|
60
|
+
const assistant = pc.Assistant('shopify-docs-assistant');
|
|
61
|
+
const chatResp = await assistant.chat({
|
|
62
|
+
messages: [{ role: 'user', content: query }],
|
|
63
|
+
});
|
|
64
|
+
const latencyMs = Date.now() - start;
|
|
65
|
+
const content = chatResp?.message?.content ?? 'ERROR: No response from Pinecone Assistant';
|
|
66
|
+
// Log async (non-blocking - response returns immediately)
|
|
67
|
+
logToSupabase({
|
|
68
|
+
query,
|
|
69
|
+
response: content,
|
|
70
|
+
citations: chatResp?.citations ?? null,
|
|
71
|
+
prompt_tokens: chatResp?.usage?.promptTokens ?? null,
|
|
72
|
+
completion_tokens: chatResp?.usage?.completionTokens ?? null,
|
|
73
|
+
total_tokens: chatResp?.usage?.totalTokens ?? null,
|
|
74
|
+
latency_ms: latencyMs,
|
|
75
|
+
success: true,
|
|
76
|
+
});
|
|
77
|
+
return content;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const latencyMs = Date.now() - start;
|
|
81
|
+
const errorMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
82
|
+
// Log failed query (non-blocking)
|
|
83
|
+
logToSupabase({
|
|
84
|
+
query,
|
|
85
|
+
response: null,
|
|
86
|
+
citations: null,
|
|
87
|
+
prompt_tokens: null,
|
|
88
|
+
completion_tokens: null,
|
|
89
|
+
total_tokens: null,
|
|
90
|
+
latency_ms: latencyMs,
|
|
91
|
+
success: false,
|
|
92
|
+
error_message: errorMsg,
|
|
93
|
+
});
|
|
94
|
+
return `ERROR: ${errorMsg}`;
|
|
95
|
+
}
|
|
10
96
|
}
|
|
11
97
|
//# sourceMappingURL=pinecone-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinecone-client.js","sourceRoot":"","sources":["../../src/lib/pinecone-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pinecone-client.js","sourceRoot":"","sources":["../../src/lib/pinecone-client.ts"],"names":[],"mappings":"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"}
|