@handy_wote/pi-ai 0.81.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 +1623 -0
- package/dist/api/anthropic-messages.d.ts +71 -0
- package/dist/api/anthropic-messages.d.ts.map +1 -0
- package/dist/api/anthropic-messages.js +1024 -0
- package/dist/api/anthropic-messages.js.map +1 -0
- package/dist/api/anthropic-messages.lazy.d.ts +3 -0
- package/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
- package/dist/api/anthropic-messages.lazy.js +3 -0
- package/dist/api/anthropic-messages.lazy.js.map +1 -0
- package/dist/api/azure-openai-responses.d.ts +15 -0
- package/dist/api/azure-openai-responses.d.ts.map +1 -0
- package/dist/api/azure-openai-responses.js +221 -0
- package/dist/api/azure-openai-responses.js.map +1 -0
- package/dist/api/azure-openai-responses.lazy.d.ts +3 -0
- package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
- package/dist/api/azure-openai-responses.lazy.js +3 -0
- package/dist/api/azure-openai-responses.lazy.js.map +1 -0
- package/dist/api/bedrock-converse-stream.d.ts +38 -0
- package/dist/api/bedrock-converse-stream.d.ts.map +1 -0
- package/dist/api/bedrock-converse-stream.js +883 -0
- package/dist/api/bedrock-converse-stream.js.map +1 -0
- package/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
- package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
- package/dist/api/bedrock-converse-stream.lazy.js +30 -0
- package/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
- package/dist/api/cloudflare.d.ts +9 -0
- package/dist/api/cloudflare.d.ts.map +1 -0
- package/dist/api/cloudflare.js +9 -0
- package/dist/api/cloudflare.js.map +1 -0
- package/dist/api/github-copilot-headers.d.ts +8 -0
- package/dist/api/github-copilot-headers.d.ts.map +1 -0
- package/dist/api/github-copilot-headers.js +29 -0
- package/dist/api/github-copilot-headers.js.map +1 -0
- package/dist/api/google-generative-ai.d.ts +13 -0
- package/dist/api/google-generative-ai.d.ts.map +1 -0
- package/dist/api/google-generative-ai.js +407 -0
- package/dist/api/google-generative-ai.js.map +1 -0
- package/dist/api/google-generative-ai.lazy.d.ts +3 -0
- package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
- package/dist/api/google-generative-ai.lazy.js +3 -0
- package/dist/api/google-generative-ai.lazy.js.map +1 -0
- package/dist/api/google-shared.d.ts +70 -0
- package/dist/api/google-shared.d.ts.map +1 -0
- package/dist/api/google-shared.js +329 -0
- package/dist/api/google-shared.js.map +1 -0
- package/dist/api/google-vertex.d.ts +15 -0
- package/dist/api/google-vertex.d.ts.map +1 -0
- package/dist/api/google-vertex.js +456 -0
- package/dist/api/google-vertex.js.map +1 -0
- package/dist/api/google-vertex.lazy.d.ts +3 -0
- package/dist/api/google-vertex.lazy.d.ts.map +1 -0
- package/dist/api/google-vertex.lazy.js +3 -0
- package/dist/api/google-vertex.lazy.js.map +1 -0
- package/dist/api/lazy.d.ts +15 -0
- package/dist/api/lazy.d.ts.map +1 -0
- package/dist/api/lazy.js +58 -0
- package/dist/api/lazy.js.map +1 -0
- package/dist/api/mistral-conversations.d.ts +25 -0
- package/dist/api/mistral-conversations.d.ts.map +1 -0
- package/dist/api/mistral-conversations.js +555 -0
- package/dist/api/mistral-conversations.js.map +1 -0
- package/dist/api/mistral-conversations.lazy.d.ts +3 -0
- package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
- package/dist/api/mistral-conversations.lazy.js +3 -0
- package/dist/api/mistral-conversations.lazy.js.map +1 -0
- package/dist/api/openai-codex-responses.d.ts +31 -0
- package/dist/api/openai-codex-responses.d.ts.map +1 -0
- package/dist/api/openai-codex-responses.js +1222 -0
- package/dist/api/openai-codex-responses.js.map +1 -0
- package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
- package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
- package/dist/api/openai-codex-responses.lazy.js +3 -0
- package/dist/api/openai-codex-responses.lazy.js.map +1 -0
- package/dist/api/openai-completions.d.ts +20 -0
- package/dist/api/openai-completions.d.ts.map +1 -0
- package/dist/api/openai-completions.js +1120 -0
- package/dist/api/openai-completions.js.map +1 -0
- package/dist/api/openai-completions.lazy.d.ts +3 -0
- package/dist/api/openai-completions.lazy.d.ts.map +1 -0
- package/dist/api/openai-completions.lazy.js +3 -0
- package/dist/api/openai-completions.lazy.js.map +1 -0
- package/dist/api/openai-prompt-cache.d.ts +3 -0
- package/dist/api/openai-prompt-cache.d.ts.map +1 -0
- package/dist/api/openai-prompt-cache.js +10 -0
- package/dist/api/openai-prompt-cache.js.map +1 -0
- package/dist/api/openai-responses-shared.d.ts +20 -0
- package/dist/api/openai-responses-shared.d.ts.map +1 -0
- package/dist/api/openai-responses-shared.js +535 -0
- package/dist/api/openai-responses-shared.js.map +1 -0
- package/dist/api/openai-responses.d.ts +14 -0
- package/dist/api/openai-responses.d.ts.map +1 -0
- package/dist/api/openai-responses.js +246 -0
- package/dist/api/openai-responses.js.map +1 -0
- package/dist/api/openai-responses.lazy.d.ts +3 -0
- package/dist/api/openai-responses.lazy.d.ts.map +1 -0
- package/dist/api/openai-responses.lazy.js +3 -0
- package/dist/api/openai-responses.lazy.js.map +1 -0
- package/dist/api/openrouter-images.d.ts +3 -0
- package/dist/api/openrouter-images.d.ts.map +1 -0
- package/dist/api/openrouter-images.js +126 -0
- package/dist/api/openrouter-images.js.map +1 -0
- package/dist/api/openrouter-images.lazy.d.ts +3 -0
- package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
- package/dist/api/openrouter-images.lazy.js +4 -0
- package/dist/api/openrouter-images.lazy.js.map +1 -0
- package/dist/api/pi-messages.d.ts +97 -0
- package/dist/api/pi-messages.d.ts.map +1 -0
- package/dist/api/pi-messages.js +307 -0
- package/dist/api/pi-messages.js.map +1 -0
- package/dist/api/pi-messages.lazy.d.ts +3 -0
- package/dist/api/pi-messages.lazy.d.ts.map +1 -0
- package/dist/api/pi-messages.lazy.js +3 -0
- package/dist/api/pi-messages.lazy.js.map +1 -0
- package/dist/api/simple-options.d.ts +9 -0
- package/dist/api/simple-options.d.ts.map +1 -0
- package/dist/api/simple-options.js +52 -0
- package/dist/api/simple-options.js.map +1 -0
- package/dist/api/transform-messages.d.ts +8 -0
- package/dist/api/transform-messages.d.ts.map +1 -0
- package/dist/api/transform-messages.js +187 -0
- package/dist/api/transform-messages.js.map +1 -0
- package/dist/auth/context.d.ts +7 -0
- package/dist/auth/context.d.ts.map +1 -0
- package/dist/auth/context.js +42 -0
- package/dist/auth/context.js.map +1 -0
- package/dist/auth/credential-store.d.ts +17 -0
- package/dist/auth/credential-store.d.ts.map +1 -0
- package/dist/auth/credential-store.js +40 -0
- package/dist/auth/credential-store.js.map +1 -0
- package/dist/auth/helpers.d.ts +21 -0
- package/dist/auth/helpers.d.ts.map +1 -0
- package/dist/auth/helpers.js +48 -0
- package/dist/auth/helpers.js.map +1 -0
- package/dist/auth/oauth/anthropic.d.ts +9 -0
- package/dist/auth/oauth/anthropic.d.ts.map +1 -0
- package/dist/auth/oauth/anthropic.js +302 -0
- package/dist/auth/oauth/anthropic.js.map +1 -0
- package/dist/auth/oauth/device-code.d.ts +23 -0
- package/dist/auth/oauth/device-code.d.ts.map +1 -0
- package/dist/auth/oauth/device-code.js +69 -0
- package/dist/auth/oauth/device-code.js.map +1 -0
- package/dist/auth/oauth/github-copilot.d.ts +6 -0
- package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
- package/dist/auth/oauth/github-copilot.js +313 -0
- package/dist/auth/oauth/github-copilot.js.map +1 -0
- package/dist/auth/oauth/load.d.ts +23 -0
- package/dist/auth/oauth/load.d.ts.map +1 -0
- package/dist/auth/oauth/load.js +49 -0
- package/dist/auth/oauth/load.js.map +1 -0
- package/dist/auth/oauth/oauth-page.d.ts +3 -0
- package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
- package/dist/auth/oauth/oauth-page.js +105 -0
- package/dist/auth/oauth/oauth-page.js.map +1 -0
- package/dist/auth/oauth/openai-codex.d.ts +9 -0
- package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
- package/dist/auth/oauth/openai-codex.js +443 -0
- package/dist/auth/oauth/openai-codex.js.map +1 -0
- package/dist/auth/oauth/pkce.d.ts +13 -0
- package/dist/auth/oauth/pkce.d.ts.map +1 -0
- package/dist/auth/oauth/pkce.js +31 -0
- package/dist/auth/oauth/pkce.js.map +1 -0
- package/dist/auth/oauth/radius.d.ts +16 -0
- package/dist/auth/oauth/radius.d.ts.map +1 -0
- package/dist/auth/oauth/radius.js +321 -0
- package/dist/auth/oauth/radius.js.map +1 -0
- package/dist/auth/oauth/xai.d.ts +6 -0
- package/dist/auth/oauth/xai.d.ts.map +1 -0
- package/dist/auth/oauth/xai.js +189 -0
- package/dist/auth/oauth/xai.js.map +1 -0
- package/dist/auth/resolve.d.ts +24 -0
- package/dist/auth/resolve.d.ts.map +1 -0
- package/dist/auth/resolve.js +103 -0
- package/dist/auth/resolve.js.map +1 -0
- package/dist/auth/types.d.ts +219 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/bedrock-provider.d.ts +5 -0
- package/dist/bedrock-provider.d.ts.map +1 -0
- package/dist/bedrock-provider.js +6 -0
- package/dist/bedrock-provider.js.map +1 -0
- package/dist/bun-oauth.d.ts +3 -0
- package/dist/bun-oauth.d.ts.map +1 -0
- package/dist/bun-oauth.js +17 -0
- package/dist/bun-oauth.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +115 -0
- package/dist/cli.js.map +1 -0
- package/dist/compat/extension-oauth-types.d.ts +39 -0
- package/dist/compat/extension-oauth-types.d.ts.map +1 -0
- package/dist/compat/extension-oauth-types.js +2 -0
- package/dist/compat/extension-oauth-types.js.map +1 -0
- package/dist/compat.d.ts +70 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +189 -0
- package/dist/compat.js.map +1 -0
- package/dist/env-api-keys.d.ts +18 -0
- package/dist/env-api-keys.d.ts.map +1 -0
- package/dist/env-api-keys.js +148 -0
- package/dist/env-api-keys.js.map +1 -0
- package/dist/image-models.d.ts +10 -0
- package/dist/image-models.d.ts.map +1 -0
- package/dist/image-models.js +24 -0
- package/dist/image-models.js.map +1 -0
- package/dist/images-api-registry.d.ts +14 -0
- package/dist/images-api-registry.d.ts.map +1 -0
- package/dist/images-api-registry.js +22 -0
- package/dist/images-api-registry.js.map +1 -0
- package/dist/images-models.d.ts +95 -0
- package/dist/images-models.d.ts.map +1 -0
- package/dist/images-models.js +142 -0
- package/dist/images-models.js.map +1 -0
- package/dist/images.d.ts +4 -0
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +14 -0
- package/dist/images.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy-api-aliases.d.ts +42 -0
- package/dist/legacy-api-aliases.d.ts.map +1 -0
- package/dist/legacy-api-aliases.js +49 -0
- package/dist/legacy-api-aliases.js.map +1 -0
- package/dist/models-store.d.ts +27 -0
- package/dist/models-store.d.ts.map +1 -0
- package/dist/models-store.js +14 -0
- package/dist/models-store.js.map +1 -0
- package/dist/models.d.ts +178 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +432 -0
- package/dist/models.js.map +1 -0
- package/dist/oauth.d.ts +3 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +2 -0
- package/dist/oauth.js.map +1 -0
- package/dist/providers/all.d.ts +6 -0
- package/dist/providers/all.d.ts.map +1 -0
- package/dist/providers/all.js +9 -0
- package/dist/providers/all.js.map +1 -0
- package/dist/providers/anthropic-compat.d.ts +10 -0
- package/dist/providers/anthropic-compat.d.ts.map +1 -0
- package/dist/providers/anthropic-compat.js +20 -0
- package/dist/providers/anthropic-compat.js.map +1 -0
- package/dist/providers/faux.d.ts +97 -0
- package/dist/providers/faux.d.ts.map +1 -0
- package/dist/providers/faux.js +395 -0
- package/dist/providers/faux.js.map +1 -0
- package/dist/providers/images/register-builtins.d.ts +4 -0
- package/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/dist/providers/images/register-builtins.js +34 -0
- package/dist/providers/images/register-builtins.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +10 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +24 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/openrouter-images.d.ts +3 -0
- package/dist/providers/openrouter-images.d.ts.map +1 -0
- package/dist/providers/openrouter-images.js +15 -0
- package/dist/providers/openrouter-images.js.map +1 -0
- package/dist/providers/radius.d.ts +9 -0
- package/dist/providers/radius.d.ts.map +1 -0
- package/dist/providers/radius.js +70 -0
- package/dist/providers/radius.js.map +1 -0
- package/dist/session-resources.d.ts +4 -0
- package/dist/session-resources.d.ts.map +1 -0
- package/dist/session-resources.js +22 -0
- package/dist/session-resources.js.map +1 -0
- package/dist/types.d.ts +629 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abort-signals.d.ts +6 -0
- package/dist/utils/abort-signals.d.ts.map +1 -0
- package/dist/utils/abort-signals.js +34 -0
- package/dist/utils/abort-signals.js.map +1 -0
- package/dist/utils/deferred-tools.d.ts +9 -0
- package/dist/utils/deferred-tools.d.ts.map +1 -0
- package/dist/utils/deferred-tools.js +36 -0
- package/dist/utils/deferred-tools.js.map +1 -0
- package/dist/utils/diagnostics.d.ts +19 -0
- package/dist/utils/diagnostics.d.ts.map +1 -0
- package/dist/utils/diagnostics.js +25 -0
- package/dist/utils/diagnostics.js.map +1 -0
- package/dist/utils/error-body.d.ts +25 -0
- package/dist/utils/error-body.d.ts.map +1 -0
- package/dist/utils/error-body.js +109 -0
- package/dist/utils/error-body.js.map +1 -0
- package/dist/utils/estimate.d.ts +17 -0
- package/dist/utils/estimate.d.ts.map +1 -0
- package/dist/utils/estimate.js +116 -0
- package/dist/utils/estimate.js.map +1 -0
- package/dist/utils/event-stream.d.ts +21 -0
- package/dist/utils/event-stream.d.ts.map +1 -0
- package/dist/utils/event-stream.js +81 -0
- package/dist/utils/event-stream.js.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +14 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/headers.d.ts +4 -0
- package/dist/utils/headers.d.ts.map +1 -0
- package/dist/utils/headers.js +18 -0
- package/dist/utils/headers.js.map +1 -0
- package/dist/utils/json-parse.d.ts +16 -0
- package/dist/utils/json-parse.d.ts.map +1 -0
- package/dist/utils/json-parse.js +113 -0
- package/dist/utils/json-parse.js.map +1 -0
- package/dist/utils/node-http-proxy.d.ts +4 -0
- package/dist/utils/node-http-proxy.d.ts.map +1 -0
- package/dist/utils/node-http-proxy.js +92 -0
- package/dist/utils/node-http-proxy.js.map +1 -0
- package/dist/utils/overflow.d.ts +59 -0
- package/dist/utils/overflow.d.ts.map +1 -0
- package/dist/utils/overflow.js +161 -0
- package/dist/utils/overflow.js.map +1 -0
- package/dist/utils/provider-env.d.ts +7 -0
- package/dist/utils/provider-env.d.ts.map +1 -0
- package/dist/utils/provider-env.js +44 -0
- package/dist/utils/provider-env.js.map +1 -0
- package/dist/utils/retry.d.ts +53 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +170 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/sanitize-unicode.d.ts +22 -0
- package/dist/utils/sanitize-unicode.d.ts.map +1 -0
- package/dist/utils/sanitize-unicode.js +26 -0
- package/dist/utils/sanitize-unicode.js.map +1 -0
- package/dist/utils/text.d.ts +6 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +10 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/typebox-helpers.d.ts +17 -0
- package/dist/utils/typebox-helpers.d.ts.map +1 -0
- package/dist/utils/typebox-helpers.js +21 -0
- package/dist/utils/typebox-helpers.js.map +1 -0
- package/dist/utils/uuid.d.ts +3 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +46 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/validation.d.ts +18 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +269 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { registerImagesApiProvider } from "../../images-api-registry.js";
|
|
2
|
+
let openRouterImagesProviderModulePromise;
|
|
3
|
+
function createLazyLoadErrorImages(model, error) {
|
|
4
|
+
return {
|
|
5
|
+
api: model.api,
|
|
6
|
+
provider: model.provider,
|
|
7
|
+
model: model.id,
|
|
8
|
+
output: [],
|
|
9
|
+
stopReason: "error",
|
|
10
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
11
|
+
timestamp: Date.now(),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function loadOpenRouterImagesProviderModule() {
|
|
15
|
+
openRouterImagesProviderModulePromise ||= import("../../api/openrouter-images.js").then((module) => module);
|
|
16
|
+
return openRouterImagesProviderModulePromise;
|
|
17
|
+
}
|
|
18
|
+
export const generateImagesOpenRouter = async (model, context, options) => {
|
|
19
|
+
try {
|
|
20
|
+
const module = await loadOpenRouterImagesProviderModule();
|
|
21
|
+
return await module.generateImages(model, context, options);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return createLazyLoadErrorImages(model, error);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export function registerBuiltInImagesApiProviders() {
|
|
28
|
+
registerImagesApiProvider({
|
|
29
|
+
api: "openrouter-images",
|
|
30
|
+
generateImages: generateImagesOpenRouter,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
registerBuiltInImagesApiProviders();
|
|
34
|
+
//# sourceMappingURL=register-builtins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-builtins.js","sourceRoot":"","sources":["../../../src/providers/images/register-builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAOzE,IAAI,qCAA0F,CAAC;AAE/F,SAAS,yBAAyB,CAAC,KAAuC,EAAE,KAAc,EAAmB;IAC5G,OAAO;QACN,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,EAAE;QACf,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACpE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;AAAA,CACF;AAED,SAAS,kCAAkC,GAA4C;IACtF,qCAAqC,KAAK,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CACtF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAwC,CACpD,CAAC;IACF,OAAO,qCAAqC,CAAC;AAAA,CAC7C;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAuD,KAAK,EAChG,KAAuC,EACvC,OAAsB,EACtB,OAAuB,EACtB,EAAE,CAAC;IACJ,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,kCAAkC,EAAE,CAAC;QAC1D,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;AAAA,CACD,CAAC;AAEF,MAAM,UAAU,iCAAiC,GAAS;IACzD,yBAAyB,CAAC;QACzB,GAAG,EAAE,mBAAmB;QACxB,cAAc,EAAE,wBAAwB;KACxC,CAAC,CAAC;AAAA,CACH;AAED,iCAAiC,EAAE,CAAC","sourcesContent":["import type { generateImages as generateImagesOpenRouterFunction } from \"../../api/openrouter-images.ts\";\nimport { registerImagesApiProvider } from \"../../images-api-registry.ts\";\nimport type { AssistantImages, ImagesContext, ImagesFunction, ImagesModel, ImagesOptions } from \"../../types.ts\";\n\ninterface OpenRouterImagesProviderModule {\n\tgenerateImages: typeof generateImagesOpenRouterFunction;\n}\n\nlet openRouterImagesProviderModulePromise: Promise<OpenRouterImagesProviderModule> | undefined;\n\nfunction createLazyLoadErrorImages(model: ImagesModel<\"openrouter-images\">, error: unknown): AssistantImages {\n\treturn {\n\t\tapi: model.api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\toutput: [],\n\t\tstopReason: \"error\",\n\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction loadOpenRouterImagesProviderModule(): Promise<OpenRouterImagesProviderModule> {\n\topenRouterImagesProviderModulePromise ||= import(\"../../api/openrouter-images.ts\").then(\n\t\t(module) => module as OpenRouterImagesProviderModule,\n\t);\n\treturn openRouterImagesProviderModulePromise;\n}\n\nexport const generateImagesOpenRouter: ImagesFunction<\"openrouter-images\", ImagesOptions> = async (\n\tmodel: ImagesModel<\"openrouter-images\">,\n\tcontext: ImagesContext,\n\toptions?: ImagesOptions,\n) => {\n\ttry {\n\t\tconst module = await loadOpenRouterImagesProviderModule();\n\t\treturn await module.generateImages(model, context, options);\n\t} catch (error) {\n\t\treturn createLazyLoadErrorImages(model, error);\n\t}\n};\n\nexport function registerBuiltInImagesApiProviders(): void {\n\tregisterImagesApiProvider({\n\t\tapi: \"openrouter-images\",\n\t\tgenerateImages: generateImagesOpenRouter,\n\t});\n}\n\nregisterBuiltInImagesApiProviders();\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Provider } from "../models.ts";
|
|
2
|
+
import type { Model } from "../types.ts";
|
|
3
|
+
export declare function openAICompatProvider(config: {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
apiKey: string;
|
|
8
|
+
models: Model<"openai-responses" | "openai-completions">[];
|
|
9
|
+
}): Provider<"openai-responses" | "openai-completions">;
|
|
10
|
+
//# sourceMappingURL=openai-compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,EAAE,CAAC;CAC3D,GAAG,QAAQ,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,CAmBtD","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport type { Provider } from \"../models.ts\";\nimport { createProvider } from \"../models.ts\";\nimport type { Model } from \"../types.ts\";\n\nexport function openAICompatProvider(config: {\n\tid: string;\n\tname: string;\n\tbaseUrl: string;\n\tapiKey: string;\n\tmodels: Model<\"openai-responses\" | \"openai-completions\">[];\n}): Provider<\"openai-responses\" | \"openai-completions\"> {\n\treturn createProvider<\"openai-responses\" | \"openai-completions\">({\n\t\tid: config.id,\n\t\tname: config.name,\n\t\tbaseUrl: config.baseUrl,\n\t\tauth: {\n\t\t\tapiKey: {\n\t\t\t\tname: \"API Key\",\n\t\t\t\tresolve: async () => ({\n\t\t\t\t\tauth: { apiKey: config.apiKey },\n\t\t\t\t}),\n\t\t\t},\n\t\t},\n\t\tmodels: config.models,\n\t\tapi: {\n\t\t\t\"openai-responses\": openAIResponsesApi(),\n\t\t\t\"openai-completions\": openAICompletionsApi(),\n\t\t},\n\t});\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
|
|
2
|
+
import { openAIResponsesApi } from "../api/openai-responses.lazy.js";
|
|
3
|
+
import { createProvider } from "../models.js";
|
|
4
|
+
export function openAICompatProvider(config) {
|
|
5
|
+
return createProvider({
|
|
6
|
+
id: config.id,
|
|
7
|
+
name: config.name,
|
|
8
|
+
baseUrl: config.baseUrl,
|
|
9
|
+
auth: {
|
|
10
|
+
apiKey: {
|
|
11
|
+
name: "API Key",
|
|
12
|
+
resolve: async () => ({
|
|
13
|
+
auth: { apiKey: config.apiKey },
|
|
14
|
+
}),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
models: config.models,
|
|
18
|
+
api: {
|
|
19
|
+
"openai-responses": openAIResponsesApi(),
|
|
20
|
+
"openai-completions": openAICompletionsApi(),
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=openai-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../src/providers/openai-compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,UAAU,oBAAoB,CAAC,MAMpC,EAAuD;IACvD,OAAO,cAAc,CAA4C;QAChE,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE;YACL,MAAM,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACrB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;iBAC/B,CAAC;aACF;SACD;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE;YACJ,kBAAkB,EAAE,kBAAkB,EAAE;YACxC,oBAAoB,EAAE,oBAAoB,EAAE;SAC5C;KACD,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport type { Provider } from \"../models.ts\";\nimport { createProvider } from \"../models.ts\";\nimport type { Model } from \"../types.ts\";\n\nexport function openAICompatProvider(config: {\n\tid: string;\n\tname: string;\n\tbaseUrl: string;\n\tapiKey: string;\n\tmodels: Model<\"openai-responses\" | \"openai-completions\">[];\n}): Provider<\"openai-responses\" | \"openai-completions\"> {\n\treturn createProvider<\"openai-responses\" | \"openai-completions\">({\n\t\tid: config.id,\n\t\tname: config.name,\n\t\tbaseUrl: config.baseUrl,\n\t\tauth: {\n\t\t\tapiKey: {\n\t\t\t\tname: \"API Key\",\n\t\t\t\tresolve: async () => ({\n\t\t\t\t\tauth: { apiKey: config.apiKey },\n\t\t\t\t}),\n\t\t\t},\n\t\t},\n\t\tmodels: config.models,\n\t\tapi: {\n\t\t\t\"openai-responses\": openAIResponsesApi(),\n\t\t\t\"openai-completions\": openAICompletionsApi(),\n\t\t},\n\t});\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-images.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter-images.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhF,wBAAgB,wBAAwB,IAAI,cAAc,CAQzD","sourcesContent":["import { openrouterImagesApi } from \"../api/openrouter-images.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IMAGE_MODELS: Record<string, Record<string, any>> = { openrouter: {} };\n\nimport { createImagesProvider, type ImagesProvider } from \"../images-models.ts\";\n\nexport function openrouterImagesProvider(): ImagesProvider {\n\treturn createImagesProvider({\n\t\tid: \"openrouter\",\n\t\tname: \"OpenRouter\",\n\t\tauth: { apiKey: envApiKeyAuth(\"OpenRouter API key\", [\"OPENROUTER_API_KEY\"]) },\n\t\tmodels: Object.values(IMAGE_MODELS.openrouter),\n\t\tapi: openrouterImagesApi(),\n\t});\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { openrouterImagesApi } from "../api/openrouter-images.lazy.js";
|
|
2
|
+
import { envApiKeyAuth } from "../auth/helpers.js";
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
const IMAGE_MODELS = { openrouter: {} };
|
|
5
|
+
import { createImagesProvider } from "../images-models.js";
|
|
6
|
+
export function openrouterImagesProvider() {
|
|
7
|
+
return createImagesProvider({
|
|
8
|
+
id: "openrouter",
|
|
9
|
+
name: "OpenRouter",
|
|
10
|
+
auth: { apiKey: envApiKeyAuth("OpenRouter API key", ["OPENROUTER_API_KEY"]) },
|
|
11
|
+
models: Object.values(IMAGE_MODELS.openrouter),
|
|
12
|
+
api: openrouterImagesApi(),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=openrouter-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-images.js","sourceRoot":"","sources":["../../src/providers/openrouter-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,YAAY,GAAwC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAC;AAEhF,MAAM,UAAU,wBAAwB,GAAmB;IAC1D,OAAO,oBAAoB,CAAC;QAC3B,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,oBAAoB,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE;QAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QAC9C,GAAG,EAAE,mBAAmB,EAAE;KAC1B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openrouterImagesApi } from \"../api/openrouter-images.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IMAGE_MODELS: Record<string, Record<string, any>> = { openrouter: {} };\n\nimport { createImagesProvider, type ImagesProvider } from \"../images-models.ts\";\n\nexport function openrouterImagesProvider(): ImagesProvider {\n\treturn createImagesProvider({\n\t\tid: \"openrouter\",\n\t\tname: \"OpenRouter\",\n\t\tauth: { apiKey: envApiKeyAuth(\"OpenRouter API key\", [\"OPENROUTER_API_KEY\"]) },\n\t\tmodels: Object.values(IMAGE_MODELS.openrouter),\n\t\tapi: openrouterImagesApi(),\n\t});\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Provider } from "../models.ts";
|
|
2
|
+
export interface RadiusProviderOptions {
|
|
3
|
+
id?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
gateway?: string;
|
|
6
|
+
}
|
|
7
|
+
/** Radius gateway provider with a persisted, dynamically refreshed catalog. */
|
|
8
|
+
export declare function radiusProvider(options?: RadiusProviderOptions): Provider<"pi-messages">;
|
|
9
|
+
//# sourceMappingURL=radius.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radius.d.ts","sourceRoot":"","sources":["../../src/providers/radius.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAoB7C,MAAM,WAAW,qBAAqB;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,QAAQ,CAAC,aAAa,CAAC,CA+C3F","sourcesContent":["import { piMessagesApi } from \"../api/pi-messages.lazy.ts\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadRadiusOAuth } from \"../auth/oauth/load.ts\";\nimport type { Provider } from \"../models.ts\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DEFAULT_RADIUS_GATEWAY = \"https://radius.pi.dev\";\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nfunction getRadiusModels(_providerId: string, _credential: any): any[] {\n\treturn [];\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nfunction getRadiusModelsFromConfig(_providerId: string, _config: any): any[] {\n\treturn [];\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nasync function loadRadiusGatewayConfig(_gateway: string, _apiKey: any, _signal: any): Promise<any> {\n\treturn {};\n}\nfunction normalizeRadiusGatewayUrl(url: string): string {\n\treturn url;\n}\n\nexport interface RadiusProviderOptions {\n\tid?: string;\n\tname?: string;\n\tgateway?: string;\n}\n\n/** Radius gateway provider with a persisted, dynamically refreshed catalog. */\nexport function radiusProvider(options: RadiusProviderOptions = {}): Provider<\"pi-messages\"> {\n\tconst id = options.id ?? \"radius\";\n\tconst name = options.name ?? \"Radius\";\n\tconst gateway = normalizeRadiusGatewayUrl(options.gateway ?? DEFAULT_RADIUS_GATEWAY);\n\tlet models = getRadiusModels(id, undefined);\n\tlet inflightRefresh: Promise<void> | undefined;\n\tconst streams = piMessagesApi();\n\n\treturn {\n\t\tid,\n\t\tname,\n\t\tauth: {\n\t\t\tapiKey: envApiKeyAuth(\"Radius API key\", [\"RADIUS_API_KEY\"]),\n\t\t\toauth: lazyOAuth({ name, load: () => loadRadiusOAuth({ name, gateway }) }),\n\t\t},\n\t\tgetModels: () => models,\n\t\trefreshModels: (context) => {\n\t\t\tinflightRefresh ??= (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst stored = await context.store.read();\n\t\t\t\t\tif (stored) models = stored.models.filter((model) => model.provider === id) as typeof models;\n\n\t\t\t\t\t// Import catalogs cached by the pre-ModelsStore Radius implementation.\n\t\t\t\t\tif (!stored && context.credential?.type === \"oauth\") {\n\t\t\t\t\t\tconst legacy = getRadiusModels(id, context.credential);\n\t\t\t\t\t\tif (legacy.length > 0) {\n\t\t\t\t\t\t\tmodels = legacy;\n\t\t\t\t\t\t\tawait context.store.write({ models: legacy, checkedAt: Date.now() });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!context.allowNetwork || context.signal?.aborted) return;\n\t\t\t\t\tconst apiKey =\n\t\t\t\t\t\tcontext.credential?.type === \"oauth\" ? context.credential.access : context.credential?.key;\n\t\t\t\t\tconst config = await loadRadiusGatewayConfig(gateway, apiKey, context.signal);\n\t\t\t\t\tif (context.signal?.aborted) return;\n\t\t\t\t\tmodels = getRadiusModelsFromConfig(id, config);\n\t\t\t\t\tawait context.store.write({ models, checkedAt: Date.now() });\n\t\t\t\t} finally {\n\t\t\t\t\tinflightRefresh = undefined;\n\t\t\t\t}\n\t\t\t})();\n\t\t\treturn inflightRefresh;\n\t\t},\n\t\tstream: (model, context, streamOptions) => streams.stream(model, context, streamOptions),\n\t\tstreamSimple: (model, context, streamOptions) => streams.streamSimple(model, context, streamOptions),\n\t};\n}\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { piMessagesApi } from "../api/pi-messages.lazy.js";
|
|
2
|
+
import { envApiKeyAuth, lazyOAuth } from "../auth/helpers.js";
|
|
3
|
+
import { loadRadiusOAuth } from "../auth/oauth/load.js";
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
const DEFAULT_RADIUS_GATEWAY = "https://radius.pi.dev";
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
7
|
+
function getRadiusModels(_providerId, _credential) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
11
|
+
function getRadiusModelsFromConfig(_providerId, _config) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
15
|
+
async function loadRadiusGatewayConfig(_gateway, _apiKey, _signal) {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
function normalizeRadiusGatewayUrl(url) {
|
|
19
|
+
return url;
|
|
20
|
+
}
|
|
21
|
+
/** Radius gateway provider with a persisted, dynamically refreshed catalog. */
|
|
22
|
+
export function radiusProvider(options = {}) {
|
|
23
|
+
const id = options.id ?? "radius";
|
|
24
|
+
const name = options.name ?? "Radius";
|
|
25
|
+
const gateway = normalizeRadiusGatewayUrl(options.gateway ?? DEFAULT_RADIUS_GATEWAY);
|
|
26
|
+
let models = getRadiusModels(id, undefined);
|
|
27
|
+
let inflightRefresh;
|
|
28
|
+
const streams = piMessagesApi();
|
|
29
|
+
return {
|
|
30
|
+
id,
|
|
31
|
+
name,
|
|
32
|
+
auth: {
|
|
33
|
+
apiKey: envApiKeyAuth("Radius API key", ["RADIUS_API_KEY"]),
|
|
34
|
+
oauth: lazyOAuth({ name, load: () => loadRadiusOAuth({ name, gateway }) }),
|
|
35
|
+
},
|
|
36
|
+
getModels: () => models,
|
|
37
|
+
refreshModels: (context) => {
|
|
38
|
+
inflightRefresh ??= (async () => {
|
|
39
|
+
try {
|
|
40
|
+
const stored = await context.store.read();
|
|
41
|
+
if (stored)
|
|
42
|
+
models = stored.models.filter((model) => model.provider === id);
|
|
43
|
+
// Import catalogs cached by the pre-ModelsStore Radius implementation.
|
|
44
|
+
if (!stored && context.credential?.type === "oauth") {
|
|
45
|
+
const legacy = getRadiusModels(id, context.credential);
|
|
46
|
+
if (legacy.length > 0) {
|
|
47
|
+
models = legacy;
|
|
48
|
+
await context.store.write({ models: legacy, checkedAt: Date.now() });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!context.allowNetwork || context.signal?.aborted)
|
|
52
|
+
return;
|
|
53
|
+
const apiKey = context.credential?.type === "oauth" ? context.credential.access : context.credential?.key;
|
|
54
|
+
const config = await loadRadiusGatewayConfig(gateway, apiKey, context.signal);
|
|
55
|
+
if (context.signal?.aborted)
|
|
56
|
+
return;
|
|
57
|
+
models = getRadiusModelsFromConfig(id, config);
|
|
58
|
+
await context.store.write({ models, checkedAt: Date.now() });
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
inflightRefresh = undefined;
|
|
62
|
+
}
|
|
63
|
+
})();
|
|
64
|
+
return inflightRefresh;
|
|
65
|
+
},
|
|
66
|
+
stream: (model, context, streamOptions) => streams.stream(model, context, streamOptions),
|
|
67
|
+
streamSimple: (model, context, streamOptions) => streams.streamSimple(model, context, streamOptions),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=radius.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radius.js","sourceRoot":"","sources":["../../src/providers/radius.ts"],"names":[],"mappings":"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","sourcesContent":["import { piMessagesApi } from \"../api/pi-messages.lazy.ts\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadRadiusOAuth } from \"../auth/oauth/load.ts\";\nimport type { Provider } from \"../models.ts\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DEFAULT_RADIUS_GATEWAY = \"https://radius.pi.dev\";\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nfunction getRadiusModels(_providerId: string, _credential: any): any[] {\n\treturn [];\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nfunction getRadiusModelsFromConfig(_providerId: string, _config: any): any[] {\n\treturn [];\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nasync function loadRadiusGatewayConfig(_gateway: string, _apiKey: any, _signal: any): Promise<any> {\n\treturn {};\n}\nfunction normalizeRadiusGatewayUrl(url: string): string {\n\treturn url;\n}\n\nexport interface RadiusProviderOptions {\n\tid?: string;\n\tname?: string;\n\tgateway?: string;\n}\n\n/** Radius gateway provider with a persisted, dynamically refreshed catalog. */\nexport function radiusProvider(options: RadiusProviderOptions = {}): Provider<\"pi-messages\"> {\n\tconst id = options.id ?? \"radius\";\n\tconst name = options.name ?? \"Radius\";\n\tconst gateway = normalizeRadiusGatewayUrl(options.gateway ?? DEFAULT_RADIUS_GATEWAY);\n\tlet models = getRadiusModels(id, undefined);\n\tlet inflightRefresh: Promise<void> | undefined;\n\tconst streams = piMessagesApi();\n\n\treturn {\n\t\tid,\n\t\tname,\n\t\tauth: {\n\t\t\tapiKey: envApiKeyAuth(\"Radius API key\", [\"RADIUS_API_KEY\"]),\n\t\t\toauth: lazyOAuth({ name, load: () => loadRadiusOAuth({ name, gateway }) }),\n\t\t},\n\t\tgetModels: () => models,\n\t\trefreshModels: (context) => {\n\t\t\tinflightRefresh ??= (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst stored = await context.store.read();\n\t\t\t\t\tif (stored) models = stored.models.filter((model) => model.provider === id) as typeof models;\n\n\t\t\t\t\t// Import catalogs cached by the pre-ModelsStore Radius implementation.\n\t\t\t\t\tif (!stored && context.credential?.type === \"oauth\") {\n\t\t\t\t\t\tconst legacy = getRadiusModels(id, context.credential);\n\t\t\t\t\t\tif (legacy.length > 0) {\n\t\t\t\t\t\t\tmodels = legacy;\n\t\t\t\t\t\t\tawait context.store.write({ models: legacy, checkedAt: Date.now() });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!context.allowNetwork || context.signal?.aborted) return;\n\t\t\t\t\tconst apiKey =\n\t\t\t\t\t\tcontext.credential?.type === \"oauth\" ? context.credential.access : context.credential?.key;\n\t\t\t\t\tconst config = await loadRadiusGatewayConfig(gateway, apiKey, context.signal);\n\t\t\t\t\tif (context.signal?.aborted) return;\n\t\t\t\t\tmodels = getRadiusModelsFromConfig(id, config);\n\t\t\t\t\tawait context.store.write({ models, checkedAt: Date.now() });\n\t\t\t\t} finally {\n\t\t\t\t\tinflightRefresh = undefined;\n\t\t\t\t}\n\t\t\t})();\n\t\t\treturn inflightRefresh;\n\t\t},\n\t\tstream: (model, context, streamOptions) => streams.stream(model, context, streamOptions),\n\t\tstreamSimple: (model, context, streamOptions) => streams.streamSimple(model, context, streamOptions),\n\t};\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type SessionResourceCleanup = (sessionId?: string) => void;
|
|
2
|
+
export declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
|
|
3
|
+
export declare function cleanupSessionResources(sessionId?: string): void;
|
|
4
|
+
//# sourceMappingURL=session-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-resources.d.ts","sourceRoot":"","sources":["../src/session-resources.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAIlE,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAK1F;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAYhE","sourcesContent":["export type SessionResourceCleanup = (sessionId?: string) => void;\n\nconst sessionResourceCleanups = new Set<SessionResourceCleanup>();\n\nexport function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void {\n\tsessionResourceCleanups.add(cleanup);\n\treturn () => {\n\t\tsessionResourceCleanups.delete(cleanup);\n\t};\n}\n\nexport function cleanupSessionResources(sessionId?: string): void {\n\tconst errors: unknown[] = [];\n\tfor (const cleanup of sessionResourceCleanups) {\n\t\ttry {\n\t\t\tcleanup(sessionId);\n\t\t} catch (error) {\n\t\t\terrors.push(error);\n\t\t}\n\t}\n\tif (errors.length > 0) {\n\t\tthrow new AggregateError(errors, \"Failed to cleanup session resources\");\n\t}\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const sessionResourceCleanups = new Set();
|
|
2
|
+
export function registerSessionResourceCleanup(cleanup) {
|
|
3
|
+
sessionResourceCleanups.add(cleanup);
|
|
4
|
+
return () => {
|
|
5
|
+
sessionResourceCleanups.delete(cleanup);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function cleanupSessionResources(sessionId) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
for (const cleanup of sessionResourceCleanups) {
|
|
11
|
+
try {
|
|
12
|
+
cleanup(sessionId);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
errors.push(error);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (errors.length > 0) {
|
|
19
|
+
throw new AggregateError(errors, "Failed to cleanup session resources");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=session-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-resources.js","sourceRoot":"","sources":["../src/session-resources.ts"],"names":[],"mappings":"AAEA,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAElE,MAAM,UAAU,8BAA8B,CAAC,OAA+B,EAAc;IAC3F,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,GAAG,EAAE,CAAC;QACZ,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAAA,CACxC,CAAC;AAAA,CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAkB,EAAQ;IACjE,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC/C,IAAI,CAAC;YACJ,OAAO,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;IACzE,CAAC;AAAA,CACD","sourcesContent":["export type SessionResourceCleanup = (sessionId?: string) => void;\n\nconst sessionResourceCleanups = new Set<SessionResourceCleanup>();\n\nexport function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void {\n\tsessionResourceCleanups.add(cleanup);\n\treturn () => {\n\t\tsessionResourceCleanups.delete(cleanup);\n\t};\n}\n\nexport function cleanupSessionResources(sessionId?: string): void {\n\tconst errors: unknown[] = [];\n\tfor (const cleanup of sessionResourceCleanups) {\n\t\ttry {\n\t\t\tcleanup(sessionId);\n\t\t} catch (error) {\n\t\t\terrors.push(error);\n\t\t}\n\t}\n\tif (errors.length > 0) {\n\t\tthrow new AggregateError(errors, \"Failed to cleanup session resources\");\n\t}\n}\n"]}
|