@vistagenic/vista 0.3.2 → 0.3.3
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/bin/vista.js +79 -109
- package/dist/ai/embeddings.d.ts +11 -11
- package/dist/ai/embeddings.js +71 -71
- package/dist/ai/index.d.ts +10 -10
- package/dist/ai/index.js +26 -26
- package/dist/ai/providers/base.js +85 -85
- package/dist/ai/react/react-server.d.ts +1 -1
- package/dist/ai/react/react-server.js +17 -17
- package/dist/ai/react/use-agent.js +138 -138
- package/dist/auth/core.d.ts +140 -140
- package/dist/auth/core.js +165 -165
- package/dist/auth/index.d.ts +20 -20
- package/dist/auth/index.js +369 -369
- package/dist/auth/react-server.d.ts +1 -1
- package/dist/auth/react-server.js +10 -10
- package/dist/auth/react.d.ts +18 -18
- package/dist/auth/react.js +71 -71
- package/dist/bin/build-rsc-flashpack.js +6 -0
- package/dist/bin/build-rsc.js +537 -492
- package/dist/bin/build.js +355 -353
- package/dist/bin/generate.js +513 -510
- package/dist/bin/webpack.config.js +4 -3
- package/dist/build/manifest.d.ts +169 -169
- package/dist/build/manifest.js +423 -423
- package/dist/build/rsc/client-manifest.d.ts +62 -62
- package/dist/build/rsc/client-manifest.js +295 -295
- package/dist/build/rsc/compiler.js +5 -4
- package/dist/build/rsc/native-scanner.d.ts +135 -135
- package/dist/build/rsc/native-scanner.js +203 -203
- package/dist/build/rsc/react-client-reference-manifest.d.ts +28 -28
- package/dist/build/rsc/react-client-reference-manifest.js +240 -240
- package/dist/build/standalone.js +260 -254
- package/dist/client/dynamic.react-server.d.ts +2 -2
- package/dist/client/dynamic.react-server.js +23 -23
- package/dist/client/link.react-server.d.ts +2 -2
- package/dist/client/link.react-server.js +11 -11
- package/dist/client/navigation.react-server.d.ts +1 -1
- package/dist/client/navigation.react-server.js +17 -17
- package/dist/client/router.react-server.d.ts +1 -1
- package/dist/client/router.react-server.js +17 -17
- package/dist/client/rsc-router.react-server.d.ts +1 -1
- package/dist/client/rsc-router.react-server.js +17 -17
- package/dist/client/script.react-server.d.ts +2 -2
- package/dist/client/script.react-server.js +23 -23
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -7
- package/dist/deploy/adapters/cloudflare.js +43 -19
- package/dist/deploy/adapters/docker.d.ts +1 -0
- package/dist/deploy/adapters/docker.js +5 -4
- package/dist/deploy/adapters/netlify.js +62 -17
- package/dist/deploy/adapters/vercel.js +80 -50
- package/dist/deploy/preflight.js +4 -3
- package/dist/deploy/runtime-pack.d.ts +11 -0
- package/dist/deploy/runtime-pack.js +300 -0
- package/dist/deploy/utils.d.ts +1 -1
- package/dist/deploy/utils.js +31 -2
- package/dist/flashpack/command.js +1 -0
- package/dist/flashpack/runtime.js +2 -1
- package/dist/index.d.ts +23 -23
- package/dist/index.js +61 -61
- package/dist/server/app-dir.d.ts +22 -0
- package/dist/server/app-dir.js +77 -0
- package/dist/server/cookie-parse.d.ts +4 -4
- package/dist/server/cookie-parse.js +14 -14
- package/dist/server/engine.js +5 -5
- package/dist/server/image-optimizer.js +2 -1
- package/dist/server/index.d.ts +109 -109
- package/dist/server/index.js +315 -315
- package/dist/server/middleware-runner.d.ts +125 -125
- package/dist/server/middleware-runner.js +607 -615
- package/dist/server/middleware-security.d.ts +36 -36
- package/dist/server/middleware-security.js +183 -183
- package/dist/server/module-compile-hook.js +695 -695
- package/dist/server/root-resolver.js +6 -5
- package/dist/server/rsc-engine-flashpack.d.ts +3 -1
- package/dist/server/rsc-engine-flashpack.js +12 -1
- package/dist/server/rsc-engine.d.ts +6 -1
- package/dist/server/rsc-engine.js +203 -219
- package/dist/server/rsc-upstream.js +893 -892
- package/dist/server/static-generator.js +4 -3
- package/dist/server/structure-validator.js +2 -1
- package/dist/server/structure-watch.js +2 -0
- package/dist/server/typed-api-runtime.js +639 -635
- package/dist/server/vista-import-map.js +134 -134
- package/dist/stack/index.d.ts +34 -34
- package/dist/stack/index.js +49 -49
- package/dist/stack/server/caller.d.ts +13 -13
- package/dist/stack/server/caller.js +42 -42
- package/dist/stack/server/executor.d.ts +40 -40
- package/dist/stack/server/executor.js +222 -222
- package/dist/stack/server/index.d.ts +11 -11
- package/dist/stack/server/index.js +24 -24
- package/dist/stack/server/procedure.d.ts +20 -20
- package/dist/stack/server/procedure.js +66 -66
- package/dist/stack/server/types.d.ts +113 -113
- package/dist/theme/react-server.d.ts +10 -10
- package/dist/theme/react-server.js +16 -16
- package/package.json +1 -1
package/bin/vista.js
CHANGED
|
@@ -59,7 +59,13 @@ if (command === 'deploy') {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
const useLegacy = flags.includes('--legacy') || process.env.VISTA_LEGACY === 'true';
|
|
62
|
-
|
|
62
|
+
if (useLegacy) {
|
|
63
|
+
console.error(
|
|
64
|
+
'[vista] --legacy / VISTA_LEGACY island SSR has been removed. Use default Flight RSC/SSR (omit --legacy) or --flashpack.'
|
|
65
|
+
);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
63
69
|
const explicitFlashpack = flags.includes('--flashpack');
|
|
64
70
|
const explicitDefaultEngine = flags.includes('--default-engine') || flags.includes('--webpack');
|
|
65
71
|
const explicitEngineFlag = getFlagValue('--engine');
|
|
@@ -113,125 +119,91 @@ markStartTime();
|
|
|
113
119
|
|
|
114
120
|
if (command === 'dev') {
|
|
115
121
|
forceRuntimeEnv('development');
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const { startRSCServer } = require('../dist/server/rsc-engine');
|
|
132
|
-
|
|
133
|
-
buildRSC(true)
|
|
134
|
-
.then(({ clientCompiler }) => {
|
|
135
|
-
startRSCServer({
|
|
136
|
-
port: process.env.PORT || 3003,
|
|
137
|
-
compiler: clientCompiler,
|
|
138
|
-
});
|
|
139
|
-
})
|
|
140
|
-
.catch((err) => {
|
|
141
|
-
console.error('RSC Build failed:', err);
|
|
142
|
-
process.exit(1);
|
|
143
|
-
});
|
|
144
|
-
} else {
|
|
145
|
-
// Legacy SSR Mode (--legacy)
|
|
146
|
-
const { startServer } = require('../dist/server/engine');
|
|
147
|
-
const { buildClient } = require('../dist/bin/build');
|
|
122
|
+
console.log(`[vista] Engine: ${process.env.VISTA_ENGINE}`);
|
|
123
|
+
const useFlashpack = process.env.VISTA_ENGINE === 'flashpack';
|
|
124
|
+
if (useFlashpack) {
|
|
125
|
+
const { runFlashpackEngineCommand } = require('../dist/flashpack/command');
|
|
126
|
+
runFlashpackEngineCommand('dev', {
|
|
127
|
+
cwd: process.cwd(),
|
|
128
|
+
port: process.env.PORT || 3003,
|
|
129
|
+
}).catch((err) => {
|
|
130
|
+
console.error('Flashpack dev failed:', err);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
});
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const { buildRSC } = require('../dist/bin/build-rsc');
|
|
136
|
+
const { startRSCServer } = require('../dist/server/rsc-engine');
|
|
148
137
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
console.error('Build failed:', err);
|
|
155
|
-
process.exit(1);
|
|
138
|
+
buildRSC(true)
|
|
139
|
+
.then(({ clientCompiler }) => {
|
|
140
|
+
startRSCServer({
|
|
141
|
+
port: process.env.PORT || 3003,
|
|
142
|
+
compiler: clientCompiler,
|
|
156
143
|
});
|
|
157
|
-
|
|
144
|
+
})
|
|
145
|
+
.catch((err) => {
|
|
146
|
+
console.error('RSC Build failed:', err);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
});
|
|
158
149
|
} else if (command === 'build') {
|
|
159
150
|
forceRuntimeEnv('production');
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
})
|
|
168
|
-
.then(() => {
|
|
169
|
-
console.log('');
|
|
170
|
-
console.log('Production build complete!');
|
|
171
|
-
})
|
|
172
|
-
.catch((err) => {
|
|
173
|
-
console.error('Flashpack build failed:', err);
|
|
174
|
-
process.exit(1);
|
|
175
|
-
});
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
const { buildRSC } = require('../dist/bin/build-rsc');
|
|
179
|
-
|
|
180
|
-
buildRSC(false)
|
|
151
|
+
console.log(`[vista] Engine: ${process.env.VISTA_ENGINE}`);
|
|
152
|
+
const useFlashpack = process.env.VISTA_ENGINE === 'flashpack';
|
|
153
|
+
if (useFlashpack) {
|
|
154
|
+
const { runFlashpackEngineCommand } = require('../dist/flashpack/command');
|
|
155
|
+
runFlashpackEngineCommand('build', {
|
|
156
|
+
cwd: process.cwd(),
|
|
157
|
+
})
|
|
181
158
|
.then(() => {
|
|
182
159
|
console.log('');
|
|
183
160
|
console.log('Production build complete!');
|
|
184
161
|
})
|
|
185
162
|
.catch((err) => {
|
|
186
|
-
console.error('
|
|
187
|
-
process.exit(1);
|
|
188
|
-
});
|
|
189
|
-
} else {
|
|
190
|
-
// Legacy Build (--legacy)
|
|
191
|
-
const { buildClient } = require('../dist/bin/build');
|
|
192
|
-
|
|
193
|
-
buildClient(false)
|
|
194
|
-
.then(() => {
|
|
195
|
-
console.log('Production build complete!');
|
|
196
|
-
})
|
|
197
|
-
.catch((err) => {
|
|
198
|
-
console.error('Build failed:', err);
|
|
163
|
+
console.error('Flashpack build failed:', err);
|
|
199
164
|
process.exit(1);
|
|
200
165
|
});
|
|
166
|
+
return;
|
|
201
167
|
}
|
|
168
|
+
const { buildRSC } = require('../dist/bin/build-rsc');
|
|
169
|
+
|
|
170
|
+
buildRSC(false)
|
|
171
|
+
.then(() => {
|
|
172
|
+
console.log('');
|
|
173
|
+
console.log('Production build complete!');
|
|
174
|
+
})
|
|
175
|
+
.catch((err) => {
|
|
176
|
+
console.error('RSC Build failed:', err);
|
|
177
|
+
process.exit(1);
|
|
178
|
+
});
|
|
202
179
|
} else if (command === 'start') {
|
|
203
180
|
forceRuntimeEnv('production');
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
const { startRSCServer } = require('../dist/server/rsc-engine');
|
|
230
|
-
startRSCServer({ port: process.env.PORT || 3003 });
|
|
231
|
-
} else {
|
|
232
|
-
const { startServer } = require('../dist/server/engine');
|
|
233
|
-
startServer(process.env.PORT || 3003);
|
|
181
|
+
console.log(`[vista] Engine: ${process.env.VISTA_ENGINE}`);
|
|
182
|
+
if (process.env.VISTA_ENGINE === 'flashpack') {
|
|
183
|
+
const { runFlashpackEngineCommand } = require('../dist/flashpack/command');
|
|
184
|
+
runFlashpackEngineCommand('start', {
|
|
185
|
+
cwd: process.cwd(),
|
|
186
|
+
port: process.env.PORT || 3003,
|
|
187
|
+
}).catch((err) => {
|
|
188
|
+
console.error('Flashpack start failed:', err);
|
|
189
|
+
process.exit(1);
|
|
190
|
+
});
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const standaloneServerPath = path.join(process.cwd(), '.vista', 'standalone', 'server.js');
|
|
194
|
+
if (fs.existsSync(standaloneServerPath)) {
|
|
195
|
+
const standalone = require(standaloneServerPath);
|
|
196
|
+
const startStandaloneServer =
|
|
197
|
+
standalone.startStandaloneServer || standalone.default || standalone;
|
|
198
|
+
startStandaloneServer({
|
|
199
|
+
port: process.env.PORT || 3003,
|
|
200
|
+
engine: process.env.VISTA_ENGINE,
|
|
201
|
+
});
|
|
202
|
+
return;
|
|
234
203
|
}
|
|
204
|
+
|
|
205
|
+
const { startRSCServer } = require('../dist/server/rsc-engine');
|
|
206
|
+
startRSCServer({ port: process.env.PORT || 3003 });
|
|
235
207
|
} else {
|
|
236
208
|
console.log('');
|
|
237
209
|
console.log('Vista JS Framework CLI');
|
|
@@ -246,7 +218,6 @@ if (command === 'dev') {
|
|
|
246
218
|
console.log(' g Generate typed API scaffolds (api-init, router, procedure)');
|
|
247
219
|
console.log('');
|
|
248
220
|
console.log('Options:');
|
|
249
|
-
console.log(' --legacy Use traditional SSR mode (instead of RSC)');
|
|
250
221
|
console.log(' --engine <default|flashpack> Select engine variant');
|
|
251
222
|
console.log(' --flashpack Use Rust-first Flashpack engine path');
|
|
252
223
|
console.log(' --default-engine Force default engine path');
|
|
@@ -255,10 +226,9 @@ if (command === 'dev') {
|
|
|
255
226
|
console.log(' deploy --dry-run Validate and emit deploy artifacts only');
|
|
256
227
|
console.log('');
|
|
257
228
|
console.log('Examples:');
|
|
258
|
-
console.log(' vista dev # Start dev server
|
|
259
|
-
console.log(' vista dev --legacy # Start dev server with legacy SSR');
|
|
229
|
+
console.log(' vista dev # Start Flight RSC/SSR dev server');
|
|
260
230
|
console.log(' vista dev --flashpack # Start dev server with Flashpack mode');
|
|
261
|
-
console.log(' vista build # Production
|
|
231
|
+
console.log(' vista build # Production Flight RSC/SSR build');
|
|
262
232
|
console.log(' vista g api-init # Generate typed API starter files');
|
|
263
233
|
console.log('');
|
|
264
234
|
}
|
package/dist/ai/embeddings.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export interface EmbedOptions {
|
|
2
|
-
model?: string;
|
|
3
|
-
apiKey?: string;
|
|
4
|
-
baseURL?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare function embedTexts(texts: string[], options?: EmbedOptions): Promise<number[][]>;
|
|
7
|
-
export declare function embedText(text: string, options?: EmbedOptions): Promise<number[]>;
|
|
8
|
-
export declare function createEmbeddings(options?: EmbedOptions): {
|
|
9
|
-
embedText: (text: string) => Promise<number[]>;
|
|
10
|
-
embedTexts: (texts: string[]) => Promise<number[][]>;
|
|
11
|
-
};
|
|
1
|
+
export interface EmbedOptions {
|
|
2
|
+
model?: string;
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
baseURL?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function embedTexts(texts: string[], options?: EmbedOptions): Promise<number[][]>;
|
|
7
|
+
export declare function embedText(text: string, options?: EmbedOptions): Promise<number[]>;
|
|
8
|
+
export declare function createEmbeddings(options?: EmbedOptions): {
|
|
9
|
+
embedText: (text: string) => Promise<number[]>;
|
|
10
|
+
embedTexts: (texts: string[]) => Promise<number[][]>;
|
|
11
|
+
};
|
package/dist/ai/embeddings.js
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.embedTexts = embedTexts;
|
|
4
|
-
exports.embedText = embedText;
|
|
5
|
-
exports.createEmbeddings = createEmbeddings;
|
|
6
|
-
const base_1 = require("./providers/base");
|
|
7
|
-
function resolveEmbedTarget(options = {}) {
|
|
8
|
-
const identifier = (0, base_1.parseModelIdentifier)(options.model || 'openai:text-embedding-3-small');
|
|
9
|
-
const provider = identifier.provider;
|
|
10
|
-
const modelName = identifier.modelName || 'text-embedding-3-small';
|
|
11
|
-
if (provider === 'nvidia' || provider === 'nim') {
|
|
12
|
-
return {
|
|
13
|
-
modelName,
|
|
14
|
-
baseURL: (options.baseURL ||
|
|
15
|
-
process.env.NVIDIA_BASE_URL ||
|
|
16
|
-
process.env.NIM_BASE_URL ||
|
|
17
|
-
'https://integrate.api.nvidia.com/v1').replace(/\/+$/, ''),
|
|
18
|
-
apiKey: options.apiKey || process.env.NVIDIA_API_KEY || process.env.NIM_API_KEY || '',
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
if (provider === 'groq') {
|
|
22
|
-
return {
|
|
23
|
-
modelName,
|
|
24
|
-
baseURL: (options.baseURL || process.env.GROQ_BASE_URL || 'https://api.groq.com/openai/v1').replace(/\/+$/, ''),
|
|
25
|
-
apiKey: options.apiKey || process.env.GROQ_API_KEY || '',
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (provider === 'ollama') {
|
|
29
|
-
return {
|
|
30
|
-
modelName,
|
|
31
|
-
baseURL: (options.baseURL || process.env.OLLAMA_BASE_URL || 'http://localhost:11434/v1').replace(/\/+$/, ''),
|
|
32
|
-
apiKey: options.apiKey || 'ollama',
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
modelName,
|
|
37
|
-
baseURL: (options.baseURL || process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1').replace(/\/+$/, ''),
|
|
38
|
-
apiKey: options.apiKey || process.env.OPENAI_API_KEY || '',
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
async function embedTexts(texts, options = {}) {
|
|
42
|
-
const target = resolveEmbedTarget(options);
|
|
43
|
-
const response = await fetch(`${target.baseURL}/embeddings`, {
|
|
44
|
-
method: 'POST',
|
|
45
|
-
headers: {
|
|
46
|
-
'Content-Type': 'application/json',
|
|
47
|
-
...(target.apiKey ? { Authorization: `Bearer ${target.apiKey}` } : {}),
|
|
48
|
-
},
|
|
49
|
-
body: JSON.stringify({
|
|
50
|
-
model: target.modelName,
|
|
51
|
-
input: texts,
|
|
52
|
-
}),
|
|
53
|
-
});
|
|
54
|
-
if (!response.ok) {
|
|
55
|
-
const detail = await response.text().catch(() => '');
|
|
56
|
-
throw new Error(`Embedding request failed (${response.status}): ${detail || response.statusText}`);
|
|
57
|
-
}
|
|
58
|
-
const json = (await response.json());
|
|
59
|
-
const rows = [...(json.data || [])].sort((left, right) => (left.index || 0) - (right.index || 0));
|
|
60
|
-
return rows.map((row) => row.embedding || []);
|
|
61
|
-
}
|
|
62
|
-
async function embedText(text, options = {}) {
|
|
63
|
-
const [vector] = await embedTexts([text], options);
|
|
64
|
-
return vector || [];
|
|
65
|
-
}
|
|
66
|
-
function createEmbeddings(options = {}) {
|
|
67
|
-
return {
|
|
68
|
-
embedText: (text) => embedText(text, options),
|
|
69
|
-
embedTexts: (texts) => embedTexts(texts, options),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.embedTexts = embedTexts;
|
|
4
|
+
exports.embedText = embedText;
|
|
5
|
+
exports.createEmbeddings = createEmbeddings;
|
|
6
|
+
const base_1 = require("./providers/base");
|
|
7
|
+
function resolveEmbedTarget(options = {}) {
|
|
8
|
+
const identifier = (0, base_1.parseModelIdentifier)(options.model || 'openai:text-embedding-3-small');
|
|
9
|
+
const provider = identifier.provider;
|
|
10
|
+
const modelName = identifier.modelName || 'text-embedding-3-small';
|
|
11
|
+
if (provider === 'nvidia' || provider === 'nim') {
|
|
12
|
+
return {
|
|
13
|
+
modelName,
|
|
14
|
+
baseURL: (options.baseURL ||
|
|
15
|
+
process.env.NVIDIA_BASE_URL ||
|
|
16
|
+
process.env.NIM_BASE_URL ||
|
|
17
|
+
'https://integrate.api.nvidia.com/v1').replace(/\/+$/, ''),
|
|
18
|
+
apiKey: options.apiKey || process.env.NVIDIA_API_KEY || process.env.NIM_API_KEY || '',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (provider === 'groq') {
|
|
22
|
+
return {
|
|
23
|
+
modelName,
|
|
24
|
+
baseURL: (options.baseURL || process.env.GROQ_BASE_URL || 'https://api.groq.com/openai/v1').replace(/\/+$/, ''),
|
|
25
|
+
apiKey: options.apiKey || process.env.GROQ_API_KEY || '',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (provider === 'ollama') {
|
|
29
|
+
return {
|
|
30
|
+
modelName,
|
|
31
|
+
baseURL: (options.baseURL || process.env.OLLAMA_BASE_URL || 'http://localhost:11434/v1').replace(/\/+$/, ''),
|
|
32
|
+
apiKey: options.apiKey || 'ollama',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
modelName,
|
|
37
|
+
baseURL: (options.baseURL || process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1').replace(/\/+$/, ''),
|
|
38
|
+
apiKey: options.apiKey || process.env.OPENAI_API_KEY || '',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async function embedTexts(texts, options = {}) {
|
|
42
|
+
const target = resolveEmbedTarget(options);
|
|
43
|
+
const response = await fetch(`${target.baseURL}/embeddings`, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
...(target.apiKey ? { Authorization: `Bearer ${target.apiKey}` } : {}),
|
|
48
|
+
},
|
|
49
|
+
body: JSON.stringify({
|
|
50
|
+
model: target.modelName,
|
|
51
|
+
input: texts,
|
|
52
|
+
}),
|
|
53
|
+
});
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
const detail = await response.text().catch(() => '');
|
|
56
|
+
throw new Error(`Embedding request failed (${response.status}): ${detail || response.statusText}`);
|
|
57
|
+
}
|
|
58
|
+
const json = (await response.json());
|
|
59
|
+
const rows = [...(json.data || [])].sort((left, right) => (left.index || 0) - (right.index || 0));
|
|
60
|
+
return rows.map((row) => row.embedding || []);
|
|
61
|
+
}
|
|
62
|
+
async function embedText(text, options = {}) {
|
|
63
|
+
const [vector] = await embedTexts([text], options);
|
|
64
|
+
return vector || [];
|
|
65
|
+
}
|
|
66
|
+
function createEmbeddings(options = {}) {
|
|
67
|
+
return {
|
|
68
|
+
embedText: (text) => embedText(text, options),
|
|
69
|
+
embedTexts: (texts) => embedTexts(texts, options),
|
|
70
|
+
};
|
|
71
|
+
}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from './types';
|
|
2
|
-
export * from './tool';
|
|
3
|
-
export * from './agent';
|
|
4
|
-
export * from './memory';
|
|
5
|
-
export * from './stream';
|
|
6
|
-
export * from './rag';
|
|
7
|
-
export * from './embeddings';
|
|
8
|
-
export * from './observability';
|
|
9
|
-
export * from './providers';
|
|
10
|
-
export * from './react';
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './tool';
|
|
3
|
+
export * from './agent';
|
|
4
|
+
export * from './memory';
|
|
5
|
+
export * from './stream';
|
|
6
|
+
export * from './rag';
|
|
7
|
+
export * from './embeddings';
|
|
8
|
+
export * from './observability';
|
|
9
|
+
export * from './providers';
|
|
10
|
+
export * from './react';
|
package/dist/ai/index.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./types"), exports);
|
|
18
|
-
__exportStar(require("./tool"), exports);
|
|
19
|
-
__exportStar(require("./agent"), exports);
|
|
20
|
-
__exportStar(require("./memory"), exports);
|
|
21
|
-
__exportStar(require("./stream"), exports);
|
|
22
|
-
__exportStar(require("./rag"), exports);
|
|
23
|
-
__exportStar(require("./embeddings"), exports);
|
|
24
|
-
__exportStar(require("./observability"), exports);
|
|
25
|
-
__exportStar(require("./providers"), exports);
|
|
26
|
-
__exportStar(require("./react"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./tool"), exports);
|
|
19
|
+
__exportStar(require("./agent"), exports);
|
|
20
|
+
__exportStar(require("./memory"), exports);
|
|
21
|
+
__exportStar(require("./stream"), exports);
|
|
22
|
+
__exportStar(require("./rag"), exports);
|
|
23
|
+
__exportStar(require("./embeddings"), exports);
|
|
24
|
+
__exportStar(require("./observability"), exports);
|
|
25
|
+
__exportStar(require("./providers"), exports);
|
|
26
|
+
__exportStar(require("./react"), exports);
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseModelIdentifier = parseModelIdentifier;
|
|
4
|
-
exports.resolveModel = resolveModel;
|
|
5
|
-
const openai_1 = require("./openai");
|
|
6
|
-
const anthropic_1 = require("./anthropic");
|
|
7
|
-
const gemini_1 = require("./gemini");
|
|
8
|
-
const mock_1 = require("./mock");
|
|
9
|
-
function parseModelIdentifier(model) {
|
|
10
|
-
const trimmed = model.trim();
|
|
11
|
-
const colonIndex = trimmed.indexOf(':');
|
|
12
|
-
if (colonIndex !== -1) {
|
|
13
|
-
const provider = trimmed.slice(0, colonIndex).toLowerCase();
|
|
14
|
-
const modelName = trimmed.slice(colonIndex + 1);
|
|
15
|
-
return { provider, modelName };
|
|
16
|
-
}
|
|
17
|
-
// Heuristic guessing if prefix omitted
|
|
18
|
-
const lower = trimmed.toLowerCase();
|
|
19
|
-
if (lower.startsWith('gpt-') || lower.startsWith('o1-') || lower.startsWith('o3-')) {
|
|
20
|
-
return { provider: 'openai', modelName: trimmed };
|
|
21
|
-
}
|
|
22
|
-
if (lower.startsWith('claude-')) {
|
|
23
|
-
return { provider: 'anthropic', modelName: trimmed };
|
|
24
|
-
}
|
|
25
|
-
if (lower.startsWith('gemini-')) {
|
|
26
|
-
return { provider: 'gemini', modelName: trimmed };
|
|
27
|
-
}
|
|
28
|
-
if (lower.startsWith('mock')) {
|
|
29
|
-
return { provider: 'mock', modelName: trimmed };
|
|
30
|
-
}
|
|
31
|
-
if (lower.startsWith('llama-') || lower.startsWith('mixtral-') || lower.startsWith('gemma2-')) {
|
|
32
|
-
return { provider: 'groq', modelName: trimmed };
|
|
33
|
-
}
|
|
34
|
-
// Default fallback
|
|
35
|
-
return { provider: 'openai', modelName: trimmed };
|
|
36
|
-
}
|
|
37
|
-
function resolveModel(model, options = {}) {
|
|
38
|
-
if (typeof model === 'object' && model !== null && 'generateText' in model) {
|
|
39
|
-
return model;
|
|
40
|
-
}
|
|
41
|
-
if (typeof model !== 'string') {
|
|
42
|
-
throw new Error('Model must be a model string or a LanguageModel implementation');
|
|
43
|
-
}
|
|
44
|
-
const { provider, modelName } = parseModelIdentifier(model);
|
|
45
|
-
const modelOptions = {
|
|
46
|
-
model: modelName,
|
|
47
|
-
...options,
|
|
48
|
-
};
|
|
49
|
-
switch (provider) {
|
|
50
|
-
case 'openai':
|
|
51
|
-
return (0, openai_1.createOpenAIModel)(modelOptions);
|
|
52
|
-
case 'anthropic':
|
|
53
|
-
return (0, anthropic_1.createAnthropicModel)(modelOptions);
|
|
54
|
-
case 'gemini':
|
|
55
|
-
return (0, gemini_1.createGeminiModel)(modelOptions);
|
|
56
|
-
case 'ollama':
|
|
57
|
-
return (0, openai_1.createOpenAIModel)({
|
|
58
|
-
...modelOptions,
|
|
59
|
-
baseURL: options.baseURL || process.env.OLLAMA_BASE_URL || 'http://localhost:11434/v1',
|
|
60
|
-
apiKey: options.apiKey || 'ollama',
|
|
61
|
-
});
|
|
62
|
-
case 'nvidia':
|
|
63
|
-
case 'nim':
|
|
64
|
-
return (0, openai_1.createOpenAIModel)({
|
|
65
|
-
...modelOptions,
|
|
66
|
-
baseURL: options.baseURL ||
|
|
67
|
-
process.env.NVIDIA_BASE_URL ||
|
|
68
|
-
process.env.NIM_BASE_URL ||
|
|
69
|
-
'https://integrate.api.nvidia.com/v1',
|
|
70
|
-
apiKey: options.apiKey || process.env.NVIDIA_API_KEY || process.env.NIM_API_KEY || '',
|
|
71
|
-
});
|
|
72
|
-
case 'groq':
|
|
73
|
-
return (0, openai_1.createOpenAIModel)({
|
|
74
|
-
...modelOptions,
|
|
75
|
-
baseURL: options.baseURL || process.env.GROQ_BASE_URL || 'https://api.groq.com/openai/v1',
|
|
76
|
-
apiKey: options.apiKey || process.env.GROQ_API_KEY || '',
|
|
77
|
-
});
|
|
78
|
-
case 'mock':
|
|
79
|
-
return (0, mock_1.createMockModel)({
|
|
80
|
-
modelName,
|
|
81
|
-
});
|
|
82
|
-
default:
|
|
83
|
-
throw new Error(`Unsupported model provider "${provider}". Supported providers: openai, anthropic, gemini, ollama, nvidia, groq, mock.`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseModelIdentifier = parseModelIdentifier;
|
|
4
|
+
exports.resolveModel = resolveModel;
|
|
5
|
+
const openai_1 = require("./openai");
|
|
6
|
+
const anthropic_1 = require("./anthropic");
|
|
7
|
+
const gemini_1 = require("./gemini");
|
|
8
|
+
const mock_1 = require("./mock");
|
|
9
|
+
function parseModelIdentifier(model) {
|
|
10
|
+
const trimmed = model.trim();
|
|
11
|
+
const colonIndex = trimmed.indexOf(':');
|
|
12
|
+
if (colonIndex !== -1) {
|
|
13
|
+
const provider = trimmed.slice(0, colonIndex).toLowerCase();
|
|
14
|
+
const modelName = trimmed.slice(colonIndex + 1);
|
|
15
|
+
return { provider, modelName };
|
|
16
|
+
}
|
|
17
|
+
// Heuristic guessing if prefix omitted
|
|
18
|
+
const lower = trimmed.toLowerCase();
|
|
19
|
+
if (lower.startsWith('gpt-') || lower.startsWith('o1-') || lower.startsWith('o3-')) {
|
|
20
|
+
return { provider: 'openai', modelName: trimmed };
|
|
21
|
+
}
|
|
22
|
+
if (lower.startsWith('claude-')) {
|
|
23
|
+
return { provider: 'anthropic', modelName: trimmed };
|
|
24
|
+
}
|
|
25
|
+
if (lower.startsWith('gemini-')) {
|
|
26
|
+
return { provider: 'gemini', modelName: trimmed };
|
|
27
|
+
}
|
|
28
|
+
if (lower.startsWith('mock')) {
|
|
29
|
+
return { provider: 'mock', modelName: trimmed };
|
|
30
|
+
}
|
|
31
|
+
if (lower.startsWith('llama-') || lower.startsWith('mixtral-') || lower.startsWith('gemma2-')) {
|
|
32
|
+
return { provider: 'groq', modelName: trimmed };
|
|
33
|
+
}
|
|
34
|
+
// Default fallback
|
|
35
|
+
return { provider: 'openai', modelName: trimmed };
|
|
36
|
+
}
|
|
37
|
+
function resolveModel(model, options = {}) {
|
|
38
|
+
if (typeof model === 'object' && model !== null && 'generateText' in model) {
|
|
39
|
+
return model;
|
|
40
|
+
}
|
|
41
|
+
if (typeof model !== 'string') {
|
|
42
|
+
throw new Error('Model must be a model string or a LanguageModel implementation');
|
|
43
|
+
}
|
|
44
|
+
const { provider, modelName } = parseModelIdentifier(model);
|
|
45
|
+
const modelOptions = {
|
|
46
|
+
model: modelName,
|
|
47
|
+
...options,
|
|
48
|
+
};
|
|
49
|
+
switch (provider) {
|
|
50
|
+
case 'openai':
|
|
51
|
+
return (0, openai_1.createOpenAIModel)(modelOptions);
|
|
52
|
+
case 'anthropic':
|
|
53
|
+
return (0, anthropic_1.createAnthropicModel)(modelOptions);
|
|
54
|
+
case 'gemini':
|
|
55
|
+
return (0, gemini_1.createGeminiModel)(modelOptions);
|
|
56
|
+
case 'ollama':
|
|
57
|
+
return (0, openai_1.createOpenAIModel)({
|
|
58
|
+
...modelOptions,
|
|
59
|
+
baseURL: options.baseURL || process.env.OLLAMA_BASE_URL || 'http://localhost:11434/v1',
|
|
60
|
+
apiKey: options.apiKey || 'ollama',
|
|
61
|
+
});
|
|
62
|
+
case 'nvidia':
|
|
63
|
+
case 'nim':
|
|
64
|
+
return (0, openai_1.createOpenAIModel)({
|
|
65
|
+
...modelOptions,
|
|
66
|
+
baseURL: options.baseURL ||
|
|
67
|
+
process.env.NVIDIA_BASE_URL ||
|
|
68
|
+
process.env.NIM_BASE_URL ||
|
|
69
|
+
'https://integrate.api.nvidia.com/v1',
|
|
70
|
+
apiKey: options.apiKey || process.env.NVIDIA_API_KEY || process.env.NIM_API_KEY || '',
|
|
71
|
+
});
|
|
72
|
+
case 'groq':
|
|
73
|
+
return (0, openai_1.createOpenAIModel)({
|
|
74
|
+
...modelOptions,
|
|
75
|
+
baseURL: options.baseURL || process.env.GROQ_BASE_URL || 'https://api.groq.com/openai/v1',
|
|
76
|
+
apiKey: options.apiKey || process.env.GROQ_API_KEY || '',
|
|
77
|
+
});
|
|
78
|
+
case 'mock':
|
|
79
|
+
return (0, mock_1.createMockModel)({
|
|
80
|
+
modelName,
|
|
81
|
+
});
|
|
82
|
+
default:
|
|
83
|
+
throw new Error(`Unsupported model provider "${provider}". Supported providers: openai, anthropic, gemini, ollama, nvidia, groq, mock.`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './index';
|
|
1
|
+
export * from './index';
|