@independo/inderun-web 0.3.3 → 0.4.0-rc.1
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 +16 -7
- package/dist/core/engine.d.ts +26 -2
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +78 -34
- package/dist/core/errors.d.ts +13 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +32 -0
- package/dist/core/model-profiles.d.ts +34 -0
- package/dist/core/model-profiles.d.ts.map +1 -0
- package/dist/core/model-profiles.js +49 -0
- package/dist/core/provenance.d.ts +32 -0
- package/dist/core/provenance.d.ts.map +1 -0
- package/dist/core/provenance.js +71 -0
- package/dist/core/provider.d.ts +13 -0
- package/dist/core/provider.d.ts.map +1 -1
- package/dist/core/route-planner.d.ts +1 -1
- package/dist/core/route-planner.d.ts.map +1 -1
- package/dist/core/route-planner.js +2 -1
- package/dist/core/router.d.ts +4 -3
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/router.js +4 -3
- package/dist/facade/text.d.ts +123 -0
- package/dist/facade/text.d.ts.map +1 -0
- package/dist/facade/text.js +234 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/providers/onnx/provider.d.ts.map +1 -1
- package/dist/providers/onnx/provider.js +1 -0
- package/dist/providers/openai/provider.d.ts.map +1 -1
- package/dist/providers/openai/provider.js +18 -0
- package/dist/web-sdk.d.ts +19 -2
- package/dist/web-sdk.d.ts.map +1 -1
- package/dist/web-sdk.js +10 -2
- package/package.json +3 -3
- package/src/core/engine.ts +114 -35
- package/src/core/errors.ts +35 -1
- package/src/core/model-profiles.ts +70 -0
- package/src/core/provenance.ts +90 -0
- package/src/core/provider.ts +13 -0
- package/src/core/route-planner.ts +3 -1
- package/src/core/router.ts +12 -3
- package/src/facade/text.ts +349 -0
- package/src/index.ts +28 -2
- package/src/providers/onnx/provider.ts +1 -0
- package/src/providers/openai/provider.ts +21 -0
- package/src/web-sdk.ts +31 -5
package/src/web-sdk.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
type CreateBrowserHostServicesOptions
|
|
4
4
|
} from "./core/browser-host.js";
|
|
5
5
|
import { IndeRun } from "./core/engine.js";
|
|
6
|
+
import type { ModelProfiles } from "./core/model-profiles.js";
|
|
6
7
|
import { OnnxRuntimeWebProvider, type OnnxProviderOptions } from "./providers/onnx/provider.js";
|
|
7
8
|
import {
|
|
8
9
|
DEFAULT_OPENAI_RESPONSES_ENDPOINT,
|
|
@@ -20,9 +21,11 @@ import {
|
|
|
20
21
|
*/
|
|
21
22
|
export interface CreateIndeRunWebOptions {
|
|
22
23
|
/**
|
|
23
|
-
* OpenAI Responses provider configuration registered by the factory.
|
|
24
|
+
* OpenAI Responses provider configuration registered by the factory. One target is
|
|
25
|
+
* registered per entry in `models`, with id `<id>:<model>` (`id` defaults to
|
|
26
|
+
* `"openai"`), so model profiles can list each model separately.
|
|
24
27
|
*/
|
|
25
|
-
openAI?:
|
|
28
|
+
openAI?: OpenAIFactoryOptions;
|
|
26
29
|
/**
|
|
27
30
|
* Web ONNX Runtime provider configuration registered by the factory, for developer-supplied
|
|
28
31
|
* local models. Registering it is what makes `constraints.privacy = "local_required"` routable.
|
|
@@ -46,8 +49,23 @@ export interface CreateIndeRunWebOptions {
|
|
|
46
49
|
* non-production environments.
|
|
47
50
|
*/
|
|
48
51
|
allowDirectOpenAIEndpoint?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Named model profiles requests can route within. Each maps a profile name to an
|
|
54
|
+
* ordered list of target ids, for example `{ smart: ["openai:gpt-5.2"] }`.
|
|
55
|
+
*/
|
|
56
|
+
modelProfiles?: ModelProfiles;
|
|
49
57
|
}
|
|
50
58
|
|
|
59
|
+
/**
|
|
60
|
+
* OpenAI options for {@link createIndeRunWeb}: the provider options with `models` in
|
|
61
|
+
* place of the single `model`. The first model is not special; every model becomes
|
|
62
|
+
* its own target.
|
|
63
|
+
*/
|
|
64
|
+
export type OpenAIFactoryOptions = Omit<OpenAIProviderOptions, "model"> & {
|
|
65
|
+
/** OpenAI model ids to register, one target each. */
|
|
66
|
+
models: readonly string[];
|
|
67
|
+
};
|
|
68
|
+
|
|
51
69
|
/**
|
|
52
70
|
* Creates a Web SDK instance with the configured providers registered.
|
|
53
71
|
*
|
|
@@ -72,7 +90,13 @@ export function createIndeRunWeb(options: CreateIndeRunWebOptions): IndeRun {
|
|
|
72
90
|
|
|
73
91
|
if (options.openAI) {
|
|
74
92
|
assertSafeOpenAIEndpoint(options.openAI, options.allowDirectOpenAIEndpoint);
|
|
75
|
-
|
|
93
|
+
const { models, id = "openai", ...shared } = options.openAI;
|
|
94
|
+
if (models.length === 0) {
|
|
95
|
+
throw new Error("createIndeRunWeb requires openAI.models to list at least one model.");
|
|
96
|
+
}
|
|
97
|
+
for (const model of models) {
|
|
98
|
+
registry.register(new OpenAIResponsesProvider({ ...shared, id: `${id}:${model}`, model }));
|
|
99
|
+
}
|
|
76
100
|
}
|
|
77
101
|
|
|
78
102
|
if (options.onnx) {
|
|
@@ -83,11 +107,13 @@ export function createIndeRunWeb(options: CreateIndeRunWebOptions): IndeRun {
|
|
|
83
107
|
registry.register(new SystemModelWebProvider(options.systemModel));
|
|
84
108
|
}
|
|
85
109
|
|
|
86
|
-
return new IndeRun(registry, createBrowserHostServices(options.hostServices)
|
|
110
|
+
return new IndeRun(registry, createBrowserHostServices(options.hostServices), {
|
|
111
|
+
...(options.modelProfiles ? { modelProfiles: options.modelProfiles } : {})
|
|
112
|
+
});
|
|
87
113
|
}
|
|
88
114
|
|
|
89
115
|
function assertSafeOpenAIEndpoint(
|
|
90
|
-
openAI:
|
|
116
|
+
openAI: OpenAIFactoryOptions,
|
|
91
117
|
allowDirectOpenAIEndpoint?: boolean
|
|
92
118
|
): void {
|
|
93
119
|
const endpointUrl = openAI.endpointUrl ?? DEFAULT_OPENAI_RESPONSES_ENDPOINT;
|