@nuvin/agent-core 0.0.0-rc.18 → 0.0.0-rc.19
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/VERSION +2 -2
- package/dist/agent/agent.d.ts +28 -0
- package/dist/agent/context-compactor.d.ts +8 -0
- package/dist/agent/extension-registry.d.ts +3 -0
- package/dist/agent/index.d.ts +8 -101
- package/dist/agent/index.js +1 -1
- package/dist/agent/messages-to-text.d.ts +3 -0
- package/dist/agent/metrics.d.ts +30 -0
- package/dist/agent/topic-reminder-extension.d.ts +32 -0
- package/dist/agent/turn-engine.d.ts +3 -0
- package/dist/chunk-FFIZ6TKW.js +1 -1
- package/dist/chunk-HRU363DY.js +1 -1
- package/dist/chunk-NHBKADBW.js +1 -1
- package/dist/chunk-NYZR4XKO.js +1 -1
- package/dist/chunk-QDOE7NWO.js +1 -1
- package/dist/chunk-X7VAACWY.js +1 -1
- package/dist/formats/base64-image-content.d.ts +4 -0
- package/dist/formats/index.d.ts +4 -39
- package/dist/formats/index.js +1 -1
- package/dist/formats/message-format.d.ts +33 -0
- package/dist/formats/provider-adapters.d.ts +3 -0
- package/dist/hooks/executor.d.ts +3 -0
- package/dist/hooks/extensions.d.ts +28 -0
- package/dist/hooks/index.d.ts +7 -76
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/registry.d.ts +8 -0
- package/dist/hooks/types.d.ts +40 -0
- package/dist/lsp/client.d.ts +11 -0
- package/dist/lsp/index.d.ts +24 -0
- package/dist/lsp/installer.d.ts +11 -0
- package/dist/lsp/language.d.ts +2 -0
- package/dist/lsp/server.d.ts +6 -0
- package/dist/lsp/types.d.ts +68 -0
- package/dist/models/anthropic-model.d.ts +27 -0
- package/dist/models/anthropic-surface.d.ts +5 -0
- package/dist/models/chat-model.d.ts +31 -0
- package/dist/models/github-model.d.ts +32 -0
- package/dist/models/http-transport.d.ts +10 -0
- package/dist/models/index.d.ts +16 -439
- package/dist/models/index.js +1 -1
- package/dist/models/mock-model.d.ts +15 -0
- package/dist/models/model-errors.d.ts +16 -0
- package/dist/models/model-limits.d.ts +7 -0
- package/dist/models/model-registry.d.ts +44 -0
- package/dist/models/model-surface-router.d.ts +19 -0
- package/dist/models/model-transports.d.ts +17 -0
- package/dist/models/openai-model.d.ts +60 -0
- package/dist/models/openai-surfaces.d.ts +74 -0
- package/dist/models/provider-adapter.d.ts +23 -0
- package/dist/models/provider-session.d.ts +16 -0
- package/dist/models/routed-model.d.ts +90 -0
- package/dist/shared/abort.d.ts +9 -0
- package/dist/shared/index.d.ts +5 -22
- package/dist/shared/index.js +1 -1
- package/dist/shared/reasoning-config.d.ts +5 -0
- package/dist/shared/turn-failed.d.ts +6 -0
- package/dist/{types-11Znykt2.d.ts → shared/types.d.ts} +163 -163
- package/dist/tools/ask-user-tool.d.ts +55 -0
- package/dist/tools/bash-tool.d.ts +63 -0
- package/dist/tools/command-tool.d.ts +23 -0
- package/dist/tools/file-edit-tool.d.ts +29 -0
- package/dist/tools/file-new-tool.d.ts +21 -0
- package/dist/tools/file-read-tool.d.ts +27 -0
- package/dist/tools/glob-tool.d.ts +26 -0
- package/dist/tools/grep-tool.d.ts +34 -0
- package/dist/tools/index.d.ts +28 -810
- package/dist/tools/index.js +1 -1
- package/dist/tools/internal-tool-runtime.d.ts +8 -0
- package/dist/tools/ls-tool.d.ts +20 -0
- package/dist/tools/lsp-tool.d.ts +36 -0
- package/dist/tools/mcp-oauth-provider.d.ts +11 -0
- package/dist/tools/mcp-server-manager.d.ts +43 -0
- package/dist/tools/mcp-tool-adapter.d.ts +47 -0
- package/dist/tools/mock-tool-runtime.d.ts +3 -0
- package/dist/tools/ripgrep.d.ts +20 -0
- package/dist/tools/runtime-manager-tools.d.ts +58 -0
- package/dist/tools/skill-tool.d.ts +33 -0
- package/dist/tools/todo-write-tool.d.ts +66 -0
- package/dist/tools/tool-output-offload.d.ts +12 -0
- package/dist/tools/tools.d.ts +24 -0
- package/dist/tools/update-topic-tool.d.ts +12 -0
- package/dist/tools/view-file-tool.d.ts +22 -0
- package/dist/tools/web-fetch-tool.d.ts +20 -0
- package/dist/tools/web-search-tool.d.ts +72 -0
- package/dist/tools/workspace-paths.d.ts +5 -0
- package/package.json +2 -2
- package/dist/provider-adapters-D1hQNeFc.d.ts +0 -5
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ChatRequest, ChatResponse, EngineChatModel, ModelExecutionOptions, ReasoningConfig } from "../shared/types.ts";
|
|
2
|
+
export interface MockModelOptions {
|
|
3
|
+
model?: string;
|
|
4
|
+
maxTokens?: number;
|
|
5
|
+
reasoning?: ReasoningConfig;
|
|
6
|
+
}
|
|
7
|
+
export declare class MockModel implements EngineChatModel {
|
|
8
|
+
readonly model: string;
|
|
9
|
+
readonly maxTokens: number;
|
|
10
|
+
readonly requests: ChatRequest[];
|
|
11
|
+
private readonly reasoning?;
|
|
12
|
+
constructor(options?: MockModelOptions);
|
|
13
|
+
complete(request: ChatRequest, _options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mock-model.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ProviderStreamEventErrorOptions {
|
|
2
|
+
code?: string;
|
|
3
|
+
retryable?: boolean;
|
|
4
|
+
status?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class ProviderRequestConstructionError extends Error {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class ProviderStreamEventError extends Error {
|
|
10
|
+
readonly code?: string;
|
|
11
|
+
readonly retryable: boolean;
|
|
12
|
+
readonly status?: number;
|
|
13
|
+
constructor(message: string, options?: ProviderStreamEventErrorOptions);
|
|
14
|
+
}
|
|
15
|
+
export declare function isRetryableProviderStreamEventError(error: unknown): boolean;
|
|
16
|
+
//# sourceMappingURL=model-errors.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModelInfo, ModelLimits } from "../shared/types.ts";
|
|
2
|
+
type RawModelResponse = Record<string, unknown>;
|
|
3
|
+
export declare function getFallbackModelLimits(provider: string, model: string): ModelLimits | undefined;
|
|
4
|
+
export declare function normalizeModelInfo(provider: string, model: RawModelResponse): ModelInfo;
|
|
5
|
+
export declare function normalizeModelLimits(provider: string, model: RawModelResponse): ModelLimits | undefined;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=model-limits.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ChatModelAuthScheme, ChatModelSurface } from "./chat-model.ts";
|
|
2
|
+
export interface ModelProfile {
|
|
3
|
+
contextWindow?: number;
|
|
4
|
+
maxOutput?: number;
|
|
5
|
+
surface?: ChatModelSurface;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ProviderProfile {
|
|
9
|
+
label?: string;
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
modelsBaseUrl?: string;
|
|
12
|
+
anthropicBaseUrl?: string;
|
|
13
|
+
surface?: ChatModelSurface;
|
|
14
|
+
authScheme?: ChatModelAuthScheme;
|
|
15
|
+
defaultModel?: string;
|
|
16
|
+
defaultModels: string[];
|
|
17
|
+
supportsModelFetch: boolean;
|
|
18
|
+
models: Record<string, ModelProfile>;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedModelProfile {
|
|
21
|
+
label?: string;
|
|
22
|
+
baseUrl?: string;
|
|
23
|
+
modelsBaseUrl?: string;
|
|
24
|
+
anthropicBaseUrl?: string;
|
|
25
|
+
surface?: ChatModelSurface;
|
|
26
|
+
authScheme?: ChatModelAuthScheme;
|
|
27
|
+
defaultModel?: string;
|
|
28
|
+
defaultModels?: string[];
|
|
29
|
+
supportsModelFetch?: boolean;
|
|
30
|
+
contextWindow?: number;
|
|
31
|
+
maxOutput?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function getProviderProfile(provider: string): ProviderProfile | undefined;
|
|
34
|
+
export declare function getModelProfile(provider: string, model: string): ModelProfile | undefined;
|
|
35
|
+
export declare function resolveModelProfile(provider: string, model: string): ResolvedModelProfile | undefined;
|
|
36
|
+
export declare function getDefaultMaxTokens(): number;
|
|
37
|
+
export declare function getDefaultModel(): string;
|
|
38
|
+
export declare function getCliDefaultModel(): string;
|
|
39
|
+
export declare function getProviderLabel(provider: string): string | undefined;
|
|
40
|
+
export declare function getProviderDefaultModel(provider: string): string | undefined;
|
|
41
|
+
export declare function getProviderDefaultModels(provider: string): string[];
|
|
42
|
+
export declare function providerSupportsModelFetch(provider: string): boolean;
|
|
43
|
+
export declare function getOnboardingProviderKeys(): string[];
|
|
44
|
+
//# sourceMappingURL=model-registry.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ChatRequest } from "../shared/types.ts";
|
|
2
|
+
export type RoutedModelMode = "complete" | "stream";
|
|
3
|
+
export interface ModelSurfaceRouter {
|
|
4
|
+
selectSurface(request: ChatRequest, options: {
|
|
5
|
+
mode: RoutedModelMode;
|
|
6
|
+
}): Promise<string> | string;
|
|
7
|
+
}
|
|
8
|
+
export declare class StaticModelSurfaceRouter implements ModelSurfaceRouter {
|
|
9
|
+
private readonly completeSurface;
|
|
10
|
+
private readonly streamSurface;
|
|
11
|
+
constructor(options: {
|
|
12
|
+
complete: string;
|
|
13
|
+
stream: string;
|
|
14
|
+
});
|
|
15
|
+
selectSurface(_request: ChatRequest, options: {
|
|
16
|
+
mode: RoutedModelMode;
|
|
17
|
+
}): string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=model-surface-router.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface ModelWebSocket {
|
|
2
|
+
readonly readyState: number;
|
|
3
|
+
addEventListener(type: "close" | "error" | "message" | "open", listener: EventListenerOrEventListenerObject): void;
|
|
4
|
+
close(code?: number, reason?: string): void;
|
|
5
|
+
removeEventListener(type: "close" | "error" | "message" | "open", listener: EventListenerOrEventListenerObject): void;
|
|
6
|
+
send(data: string): void;
|
|
7
|
+
}
|
|
8
|
+
export type WebSocketFactory = (options: {
|
|
9
|
+
headers: Record<string, string>;
|
|
10
|
+
url: string;
|
|
11
|
+
}) => ModelWebSocket;
|
|
12
|
+
export declare function createDefaultWebSocketFactory(): WebSocketFactory;
|
|
13
|
+
export declare function iterateSseEvents(response: Response, signal?: AbortSignal): AsyncGenerator<string>;
|
|
14
|
+
export declare function waitForWebSocketOpen(socket: ModelWebSocket, signal?: AbortSignal): Promise<void>;
|
|
15
|
+
export declare function iterateWebSocketMessages(socket: ModelWebSocket, signal?: AbortSignal): AsyncIterable<Record<string, unknown>>;
|
|
16
|
+
export declare function toWebSocketUrl(baseUrl: string, path: string): string;
|
|
17
|
+
//# sourceMappingURL=model-transports.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { BaseChatModelOptions, ChatRequest, ChatResponse, ChatResponseChunk, ModelExecutionOptions, ProviderCredential } from "../shared/types.ts";
|
|
2
|
+
import type { WebSocketFactory } from "./model-transports.ts";
|
|
3
|
+
import { OpenAiApiError } from "./openai-surfaces.ts";
|
|
4
|
+
import type { ProviderRequestMutator, ProviderSessionResolver, ResolvedProviderSession } from "./provider-session.ts";
|
|
5
|
+
import { type ProviderSessionManager } from "./provider-session.ts";
|
|
6
|
+
import { RoutedModel } from "./routed-model.ts";
|
|
7
|
+
export type { WebSocketFactory } from "./model-transports.ts";
|
|
8
|
+
export { OpenAiApiError };
|
|
9
|
+
export interface OpenAiRequestHeadersContext {
|
|
10
|
+
request?: ChatRequest;
|
|
11
|
+
body: unknown;
|
|
12
|
+
credential: ProviderCredential;
|
|
13
|
+
session?: ResolvedProviderSession;
|
|
14
|
+
stream: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type OpenAiHeaderResolver = (context: OpenAiRequestHeadersContext) => Promise<Record<string, string>> | Record<string, string>;
|
|
17
|
+
export interface OpenAiModelOptions extends Partial<BaseChatModelOptions> {
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
chatCompletionsPath?: string;
|
|
21
|
+
responsesPath?: string;
|
|
22
|
+
fetch?: typeof globalThis.fetch;
|
|
23
|
+
providerSessionResolver?: ProviderSessionResolver;
|
|
24
|
+
requestMutators?: ProviderRequestMutator[];
|
|
25
|
+
headerResolver?: OpenAiHeaderResolver;
|
|
26
|
+
sessionManager?: ProviderSessionManager;
|
|
27
|
+
webSocketFactory?: WebSocketFactory;
|
|
28
|
+
}
|
|
29
|
+
export declare class OpenAiModel extends RoutedModel {
|
|
30
|
+
private static readonly sharedResponsesSocketSessions;
|
|
31
|
+
protected readonly chatCompletionsPath: string;
|
|
32
|
+
protected readonly responsesPath: string;
|
|
33
|
+
constructor(options?: OpenAiModelOptions);
|
|
34
|
+
protected completeViaChatCompletionsSurface(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
35
|
+
protected completeViaResponsesSurface(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
36
|
+
protected completeViaResponsesWebSocketSurface(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
37
|
+
protected streamViaChatCompletionsSurface(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
38
|
+
protected streamViaResponsesSurface(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
39
|
+
protected streamViaResponsesWebSocketSurface(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
40
|
+
chatComplete(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
41
|
+
response(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
42
|
+
responseSocket(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
43
|
+
chatStream(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
44
|
+
responseStream(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
45
|
+
responseSocketStream(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
46
|
+
complete(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
47
|
+
stream(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
48
|
+
private getResponsesSocketSessionState;
|
|
49
|
+
private getResponsesSocketSessionKey;
|
|
50
|
+
private acquireResponsesSocketLock;
|
|
51
|
+
private prepareResponsesSocketRequest;
|
|
52
|
+
private buildResponsesSocketEvent;
|
|
53
|
+
private findResponsesSocketCheckpoint;
|
|
54
|
+
private shouldRetryResponsesSocketRequest;
|
|
55
|
+
private invalidateResponsesSocketSession;
|
|
56
|
+
private getOrCreateResponsesSocket;
|
|
57
|
+
private streamViaPersistentResponsesSocket;
|
|
58
|
+
private streamViaResponsesSocketAttempt;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=openai-model.d.ts.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { toOpenAiResponsesRequest } from "../formats/provider-adapters.ts";
|
|
2
|
+
import type { ChatRequest, JsonSchemaObject, ToolSchema } from "../shared/types.ts";
|
|
3
|
+
import type { RoutedModelStreamParser, RoutedModelSurface } from "./routed-model.ts";
|
|
4
|
+
export declare const OPENAI_CHAT_COMPLETIONS_SURFACE = "openai-chat-completions";
|
|
5
|
+
export declare const OPENAI_CHAT_COMPLETIONS_STREAM_SURFACE = "openai-chat-completions-stream";
|
|
6
|
+
export declare const OPENAI_RESPONSES_SURFACE = "openai-responses";
|
|
7
|
+
export declare const OPENAI_RESPONSES_STREAM_SURFACE = "openai-responses-stream";
|
|
8
|
+
export declare const OPENAI_RESPONSES_WEBSOCKET_SURFACE = "openai-responses-ws";
|
|
9
|
+
interface OpenAiChatCompletionToolCall {
|
|
10
|
+
id: string;
|
|
11
|
+
type: "function";
|
|
12
|
+
function: {
|
|
13
|
+
name: string;
|
|
14
|
+
arguments: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface OpenAiChatCompletionToolDefinition {
|
|
18
|
+
type: "function";
|
|
19
|
+
function: {
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
parameters?: ToolSchema["input_schema"];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
type OpenAiChatCompletionUserContentPart = {
|
|
26
|
+
type: "image_url";
|
|
27
|
+
image_url: {
|
|
28
|
+
url: string;
|
|
29
|
+
};
|
|
30
|
+
} | {
|
|
31
|
+
type: "text";
|
|
32
|
+
text: string;
|
|
33
|
+
};
|
|
34
|
+
interface OpenAiChatCompletionMessage {
|
|
35
|
+
role: "assistant" | "system" | "tool" | "user";
|
|
36
|
+
content: null | string | OpenAiChatCompletionUserContentPart[];
|
|
37
|
+
tool_calls?: OpenAiChatCompletionToolCall[];
|
|
38
|
+
tool_call_id?: string;
|
|
39
|
+
}
|
|
40
|
+
interface OpenAiChatCompletionsRequest {
|
|
41
|
+
model: string;
|
|
42
|
+
messages: OpenAiChatCompletionMessage[];
|
|
43
|
+
max_completion_tokens?: number;
|
|
44
|
+
max_tokens?: number;
|
|
45
|
+
reasoning_effort?: "high" | "low" | "medium" | "minimal" | "none" | "xhigh";
|
|
46
|
+
stream: boolean;
|
|
47
|
+
tools?: OpenAiChatCompletionToolDefinition[];
|
|
48
|
+
response_format?: {
|
|
49
|
+
type: "json_schema";
|
|
50
|
+
json_schema: {
|
|
51
|
+
name: string;
|
|
52
|
+
schema: JsonSchemaObject;
|
|
53
|
+
strict: boolean;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare class OpenAiApiError extends Error {
|
|
58
|
+
readonly status: number;
|
|
59
|
+
readonly body: string;
|
|
60
|
+
constructor(status: number, body: string, message: string);
|
|
61
|
+
}
|
|
62
|
+
export declare function createChatRequestBody(request: ChatRequest, stream: boolean): OpenAiChatCompletionsRequest;
|
|
63
|
+
export declare function createOpenAiResponsesWebSocketEvent(request: ChatRequest, options?: {
|
|
64
|
+
input?: ReturnType<typeof toOpenAiResponsesRequest>["input"];
|
|
65
|
+
previousResponseId?: string;
|
|
66
|
+
}): Record<string, unknown>;
|
|
67
|
+
export declare function createOpenAiApiError(response: Response): Promise<OpenAiApiError>;
|
|
68
|
+
export declare function createOpenAiResponsesStreamParser(request: ChatRequest): RoutedModelStreamParser;
|
|
69
|
+
export declare function createOpenAiSurfaces(options?: {
|
|
70
|
+
chatCompletionsPath?: string;
|
|
71
|
+
responsesPath?: string;
|
|
72
|
+
}): RoutedModelSurface[];
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=openai-surfaces.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ChatRequest, ProviderCredential, ResolvedProviderSession } from "../shared/types.ts";
|
|
2
|
+
export interface ProviderHeaderContext {
|
|
3
|
+
request?: ChatRequest;
|
|
4
|
+
body?: unknown;
|
|
5
|
+
credential: ProviderCredential;
|
|
6
|
+
session?: ResolvedProviderSession;
|
|
7
|
+
stream: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ProviderAdapter {
|
|
10
|
+
createHeaders(context: ProviderHeaderContext, options: {
|
|
11
|
+
accept: string;
|
|
12
|
+
includeContentType?: boolean;
|
|
13
|
+
}): Headers | Promise<Headers>;
|
|
14
|
+
createMissingCredentialError(): Error;
|
|
15
|
+
mapApiError(error: Error): Error;
|
|
16
|
+
resolveBaseUrl(defaultBaseUrl: string, session: ResolvedProviderSession | undefined): string;
|
|
17
|
+
resolveCredential(apiKey: string | undefined, session: ResolvedProviderSession | undefined): ProviderCredential | undefined;
|
|
18
|
+
toApiError(response: Response): Promise<Error>;
|
|
19
|
+
}
|
|
20
|
+
export declare function trimTrailingSlashes(value: string): string;
|
|
21
|
+
export declare function resolveApiCredential(apiKey: string | undefined, session: ResolvedProviderSession | undefined): ProviderCredential | undefined;
|
|
22
|
+
export declare function resolveSessionBaseUrl(defaultBaseUrl: string, session: ResolvedProviderSession | undefined): string;
|
|
23
|
+
//# sourceMappingURL=provider-adapter.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ModelRequest, PreparedRequest, ProviderRequestMutator, ProviderSessionResolver, ResolvedProviderSession } from "../shared/types.ts";
|
|
2
|
+
export type { ProviderCredential, ProviderCredentialKind, ProviderEndpoints, ProviderRequestMutator, ProviderSessionResolver, ResolvedProviderSession, } from "../shared/types.ts";
|
|
3
|
+
export interface PrepareProviderRequestOptions {
|
|
4
|
+
sessionManager?: ProviderSessionManager;
|
|
5
|
+
requestMutators?: ProviderRequestMutator[];
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
}
|
|
8
|
+
export declare class ProviderSessionManager {
|
|
9
|
+
private readonly resolver;
|
|
10
|
+
private cached?;
|
|
11
|
+
constructor(resolver: ProviderSessionResolver);
|
|
12
|
+
resolve(signal?: AbortSignal): Promise<ResolvedProviderSession>;
|
|
13
|
+
invalidate(): void;
|
|
14
|
+
}
|
|
15
|
+
export declare function prepareProviderRequest(request: ModelRequest, options?: PrepareProviderRequestOptions): Promise<PreparedRequest>;
|
|
16
|
+
//# sourceMappingURL=provider-session.d.ts.map
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatRequest, ChatResponse, ChatResponseChunk, EngineChatModel, ModelExecutionOptions, ReasoningConfig } from "../shared/types.ts";
|
|
2
|
+
import type { ModelSurfaceRouter } from "./model-surface-router.ts";
|
|
3
|
+
import type { WebSocketFactory } from "./model-transports.ts";
|
|
4
|
+
import type { ProviderAdapter, ProviderHeaderContext } from "./provider-adapter.ts";
|
|
5
|
+
import type { ProviderRequestMutator, ProviderSessionResolver } from "./provider-session.ts";
|
|
6
|
+
import { ProviderSessionManager } from "./provider-session.ts";
|
|
7
|
+
export interface RoutedModelStreamParser {
|
|
8
|
+
consumeSseEvent?(rawEvent: string): ChatResponseChunk[];
|
|
9
|
+
consumeWebSocketEvent?(event: Record<string, unknown>): ChatResponseChunk[];
|
|
10
|
+
finish(): ChatResponse;
|
|
11
|
+
isDone?(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface RoutedModelSurfaceRequest {
|
|
14
|
+
accept?: string;
|
|
15
|
+
body?: unknown;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
initialEvent?: unknown;
|
|
18
|
+
path?: string;
|
|
19
|
+
url?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface RoutedModelSurface {
|
|
22
|
+
id: string;
|
|
23
|
+
transport: "http-json" | "http-sse" | "websocket";
|
|
24
|
+
createRequest(request: ChatRequest): RoutedModelSurfaceRequest;
|
|
25
|
+
createStreamParser?(request: ChatRequest): RoutedModelStreamParser;
|
|
26
|
+
parseResponse?(payload: unknown, request: ChatRequest): ChatResponse;
|
|
27
|
+
}
|
|
28
|
+
export interface RoutedModelOptions {
|
|
29
|
+
apiKey?: string;
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
fetch?: typeof globalThis.fetch;
|
|
32
|
+
model: string;
|
|
33
|
+
maxTokens?: number;
|
|
34
|
+
reasoning?: ReasoningConfig;
|
|
35
|
+
providerAdapter: ProviderAdapter;
|
|
36
|
+
providerSessionResolver?: ProviderSessionResolver;
|
|
37
|
+
requestMutators?: ProviderRequestMutator[];
|
|
38
|
+
router: ModelSurfaceRouter;
|
|
39
|
+
sessionManager?: ProviderSessionManager;
|
|
40
|
+
surfaces: RoutedModelSurface[];
|
|
41
|
+
webSocketFactory?: WebSocketFactory;
|
|
42
|
+
}
|
|
43
|
+
export declare class RoutedModel implements EngineChatModel {
|
|
44
|
+
readonly model: string;
|
|
45
|
+
readonly maxTokens: number;
|
|
46
|
+
protected readonly reasoning?: ReasoningConfig;
|
|
47
|
+
protected readonly apiKey?: string;
|
|
48
|
+
protected readonly baseUrl: string;
|
|
49
|
+
protected readonly fetchImpl: typeof globalThis.fetch;
|
|
50
|
+
protected readonly providerAdapter: ProviderAdapter;
|
|
51
|
+
protected readonly requestMutators: ProviderRequestMutator[];
|
|
52
|
+
protected readonly router: ModelSurfaceRouter;
|
|
53
|
+
protected readonly sessionManager?: ProviderSessionManager;
|
|
54
|
+
protected readonly webSocketFactory: WebSocketFactory;
|
|
55
|
+
private readonly surfaces;
|
|
56
|
+
constructor(options: RoutedModelOptions);
|
|
57
|
+
complete(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
58
|
+
stream(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
59
|
+
protected completeViaRouter(request: ChatRequest, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
60
|
+
protected streamViaRouter(request: ChatRequest, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
61
|
+
protected completeViaSurface(request: ChatRequest, surfaceId: string, options?: ModelExecutionOptions): Promise<ChatResponse>;
|
|
62
|
+
protected streamViaSurface(request: ChatRequest, surfaceId: string, options?: ModelExecutionOptions): AsyncIterable<ChatResponseChunk>;
|
|
63
|
+
protected sendRawRequest(options: {
|
|
64
|
+
accept?: string;
|
|
65
|
+
body?: unknown;
|
|
66
|
+
method: "GET" | "POST";
|
|
67
|
+
path: string;
|
|
68
|
+
signal?: AbortSignal;
|
|
69
|
+
}): Promise<Response>;
|
|
70
|
+
protected getRetryDelayMs(response: Response | undefined, attemptIndex: number): number;
|
|
71
|
+
private shouldRetryResponse;
|
|
72
|
+
private shouldRetryRequestError;
|
|
73
|
+
private shouldRetryStreamAttemptError;
|
|
74
|
+
private waitForRetry;
|
|
75
|
+
private sendWithRetries;
|
|
76
|
+
protected createMissingCredentialError(): Error;
|
|
77
|
+
protected createHeaders(context: ProviderHeaderContext, options: {
|
|
78
|
+
accept: string;
|
|
79
|
+
includeContentType?: boolean;
|
|
80
|
+
}): Promise<Headers>;
|
|
81
|
+
protected mapApiError(error: Error): Error;
|
|
82
|
+
protected toApiError(response: Response): Promise<Error>;
|
|
83
|
+
private getSurface;
|
|
84
|
+
private prepareChatRequest;
|
|
85
|
+
protected applyModelDefaults(request: ChatRequest): ChatRequest;
|
|
86
|
+
private sendHttpSurfaceRequest;
|
|
87
|
+
private streamHttpSurface;
|
|
88
|
+
private streamWebSocketSurface;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=routed-model.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class OperationAbortedError extends Error {
|
|
2
|
+
readonly code = "ABORT_ERR";
|
|
3
|
+
constructor(message?: string);
|
|
4
|
+
}
|
|
5
|
+
export declare function toAbortError(reason: unknown): Error;
|
|
6
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
7
|
+
export declare function throwIfAborted(signal?: AbortSignal): void;
|
|
8
|
+
export declare function addAbortListener(signal: AbortSignal | undefined, onAbort: () => void): () => void;
|
|
9
|
+
//# sourceMappingURL=abort.d.ts.map
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
constructor(message?: string);
|
|
7
|
-
}
|
|
8
|
-
declare function toAbortError(reason: unknown): Error;
|
|
9
|
-
declare function isAbortError(error: unknown): boolean;
|
|
10
|
-
declare function throwIfAborted(signal?: AbortSignal): void;
|
|
11
|
-
declare function addAbortListener(signal: AbortSignal | undefined, onAbort: () => void): () => void;
|
|
12
|
-
|
|
13
|
-
declare function mapAutoReasoningEffortToBudgetTokens(effort: AutoReasoningEffort): number;
|
|
14
|
-
declare function resolveAnthropicThinkingConfig(reasoning: ReasoningConfig | undefined): AnthropicThinkingConfig | undefined;
|
|
15
|
-
declare function resolveOpenAiReasoningConfig(reasoning: ReasoningConfig | undefined): OpenAiReasoningConfig | undefined;
|
|
16
|
-
|
|
17
|
-
declare class TurnFailedError extends Error {
|
|
18
|
-
readonly state: TurnState;
|
|
19
|
-
constructor(cause: unknown, state: TurnState);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { AnthropicThinkingConfig, AutoReasoningEffort, OpenAiReasoningConfig, OperationAbortedError, ReasoningConfig, TurnFailedError, TurnState, addAbortListener, isAbortError, mapAutoReasoningEffortToBudgetTokens, resolveAnthropicThinkingConfig, resolveOpenAiReasoningConfig, throwIfAborted, toAbortError };
|
|
1
|
+
export * from "./abort.ts";
|
|
2
|
+
export * from "./reasoning-config.ts";
|
|
3
|
+
export * from "./turn-failed.ts";
|
|
4
|
+
export * from "./types.ts";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/shared/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x1f52(_0x48bc7f,_0x3c859e){_0x48bc7f=_0x48bc7f-0x67;var _0x103fcd=_0x103f();var _0x1f52e4=_0x103fcd[_0x48bc7f];if(_0x1f52['qfyvQt']===undefined){var _0xe73ec2=function(_0x28a587){var _0x18b8f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4e4d4a='',_0x18e252='';for(var _0x2d0e6a=0x0,_0xa33ee7,_0xb1fd67,_0x546bed=0x0;_0xb1fd67=_0x28a587['charAt'](_0x546bed++);~_0xb1fd67&&(_0xa33ee7=_0x2d0e6a%0x4?_0xa33ee7*0x40+_0xb1fd67:_0xb1fd67,_0x2d0e6a++%0x4)?_0x4e4d4a+=String['fromCharCode'](0xff&_0xa33ee7>>(-0x2*_0x2d0e6a&0x6)):0x0){_0xb1fd67=_0x18b8f3['indexOf'](_0xb1fd67);}for(var _0xcde640=0x0,_0x4564c8=_0x4e4d4a['length'];_0xcde640<_0x4564c8;_0xcde640++){_0x18e252+='%'+('00'+_0x4e4d4a['charCodeAt'](_0xcde640)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18e252);};_0x1f52['PdSyKB']=_0xe73ec2,_0x1f52['BlzXOG']={},_0x1f52['qfyvQt']=!![];}var _0x3dd39b=_0x103fcd[0x0],_0x18c578=_0x48bc7f+_0x3dd39b,_0x3de5d8=_0x1f52['BlzXOG'][_0x18c578];return!_0x3de5d8?(_0x1f52e4=_0x1f52['PdSyKB'](_0x1f52e4),_0x1f52['BlzXOG'][_0x18c578]=_0x1f52e4):_0x1f52e4=_0x3de5d8,_0x1f52e4;}(function(_0x59a4f7,_0x21023a){var _0x123d24={_0x1f7aee:0x9b,_0x1346d3:0x5,_0x1594f5:0x96,_0x47364b:0x94,_0x56ad7b:0x92,_0x47347c:0x99,_0x13a90e:0x9d,_0x3c04e6:0x9f,_0x3124b8:0x9f,_0x53a36d:0x9d,_0x48900f:0x1,_0x203bdf:0x6,_0x56ba59:0x2,_0x1b9292:0x98},_0x4ea517={_0x5a86fb:0x6e},_0x271995=_0x59a4f7();function _0x15a2bf(_0x51c401,_0x55c95e,_0x486752,_0x1756c0){return _0x1f52(_0x55c95e-0x2d,_0x1756c0);}function _0x463844(_0x1487de,_0x2397fa,_0x2b955c,_0x5d7903){return _0x1f52(_0x1487de- -_0x4ea517._0x5a86fb,_0x2397fa);}while(!![]){try{var _0xa5df13=-parseInt(_0x15a2bf(0x97,_0x123d24._0x1f7aee,0x9a,0x95))/0x1*(parseInt(_0x463844(0x1,-0x3,0x4,0x1))/0x2)+-parseInt(_0x463844(-_0x123d24._0x1346d3,-0x2,-0x7,-0x7))/0x3+parseInt(_0x15a2bf(_0x123d24._0x1594f5,_0x123d24._0x47364b,0x90,_0x123d24._0x56ad7b))/0x4*(-parseInt(_0x15a2bf(_0x123d24._0x47347c,_0x123d24._0x13a90e,0x9e,0x9c))/0x5)+-parseInt(_0x15a2bf(0x9f,_0x123d24._0x3c04e6,0x9d,0x9b))/0x6*(parseInt(_0x15a2bf(0x98,_0x123d24._0x47347c,_0x123d24._0x3124b8,_0x123d24._0x3124b8))/0x7)+-parseInt(_0x15a2bf(0x93,0x97,0x9c,_0x123d24._0x53a36d))/0x8*(-parseInt(_0x463844(-_0x123d24._0x48900f,-0x3,0x4,-0x2))/0x9)+parseInt(_0x463844(-_0x123d24._0x203bdf,0x0,-0xa,-0x2))/0xa*(-parseInt(_0x463844(0x3,-_0x123d24._0x56ba59,-_0x123d24._0x56ba59,0x8))/0xb)+parseInt(_0x15a2bf(0x96,_0x123d24._0x1b9292,0x92,_0x123d24._0x47364b))/0xc;if(_0xa5df13===_0x21023a)break;else _0x271995['push'](_0x271995['shift']());}catch(_0xe245d2){_0x271995['push'](_0x271995['shift']());}}}(_0x103f,0xccd16));import{mapAutoReasoningEffortToBudgetTokens,resolveAnthropicThinkingConfig,resolveOpenAiReasoningConfig}from'../chunk-NYZR4XKO.js';import{TurnFailedError}from'../chunk-FFIZ6TKW.js';import{OperationAbortedError,addAbortListener,isAbortError,throwIfAborted,toAbortError}from'../chunk-X7VAACWY.js';function _0x103f(){var _0x52703b=['nZCYmdm2mMrZAK50zq','mtzwBvv5u2u','mtiYntm0mJbzyxnHAfC','mJC3odG3teLKChLu','ogLXAfzsrG','nteYnZe0nZzAv0PIqLG','n2zeB0n6va','mte2mZqWnJzZzvvrD3a','mJy3ntaZs25fB1rr','nLHUCvHjuW','mty0odK0nu1drxP2Dq','mtfqr2Txq0u'];_0x103f=function(){return _0x52703b;};return _0x103f();}export{OperationAbortedError,TurnFailedError,addAbortListener,isAbortError,mapAutoReasoningEffortToBudgetTokens,resolveAnthropicThinkingConfig,resolveOpenAiReasoningConfig,throwIfAborted,toAbortError};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AnthropicThinkingConfig, AutoReasoningEffort, OpenAiReasoningConfig, ReasoningConfig } from "./types.ts";
|
|
2
|
+
export declare function mapAutoReasoningEffortToBudgetTokens(effort: AutoReasoningEffort): number;
|
|
3
|
+
export declare function resolveAnthropicThinkingConfig(reasoning: ReasoningConfig | undefined): AnthropicThinkingConfig | undefined;
|
|
4
|
+
export declare function resolveOpenAiReasoningConfig(reasoning: ReasoningConfig | undefined): OpenAiReasoningConfig | undefined;
|
|
5
|
+
//# sourceMappingURL=reasoning-config.d.ts.map
|