@nuvin/agent-core 0.0.0-rc.2 → 0.0.0-rc.20

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.
Files changed (92) hide show
  1. package/dist/VERSION +2 -2
  2. package/dist/agent/agent.d.ts +28 -0
  3. package/dist/agent/context-compactor.d.ts +8 -0
  4. package/dist/agent/extension-registry.d.ts +3 -0
  5. package/dist/agent/index.d.ts +8 -30
  6. package/dist/agent/index.js +1 -1
  7. package/dist/agent/messages-to-text.d.ts +3 -0
  8. package/dist/agent/metrics.d.ts +30 -0
  9. package/dist/agent/topic-reminder-extension.d.ts +32 -0
  10. package/dist/agent/turn-engine.d.ts +3 -0
  11. package/dist/chunk-FFIZ6TKW.js +1 -0
  12. package/dist/chunk-HRU363DY.js +1 -0
  13. package/dist/chunk-NHBKADBW.js +1 -0
  14. package/dist/chunk-NYZR4XKO.js +1 -1
  15. package/dist/chunk-QDOE7NWO.js +1 -0
  16. package/dist/chunk-X7VAACWY.js +1 -1
  17. package/dist/formats/base64-image-content.d.ts +4 -0
  18. package/dist/formats/index.d.ts +4 -25
  19. package/dist/formats/index.js +1 -1
  20. package/dist/formats/message-format.d.ts +33 -0
  21. package/dist/formats/provider-adapters.d.ts +3 -0
  22. package/dist/hooks/executor.d.ts +3 -0
  23. package/dist/hooks/extensions.d.ts +28 -0
  24. package/dist/hooks/index.d.ts +7 -0
  25. package/dist/hooks/index.js +1 -0
  26. package/dist/hooks/registry.d.ts +8 -0
  27. package/dist/hooks/types.d.ts +40 -0
  28. package/dist/lsp/client.d.ts +11 -0
  29. package/dist/lsp/index.d.ts +24 -0
  30. package/dist/lsp/installer.d.ts +11 -0
  31. package/dist/lsp/language.d.ts +2 -0
  32. package/dist/lsp/server.d.ts +6 -0
  33. package/dist/lsp/types.d.ts +68 -0
  34. package/dist/models/anthropic-model.d.ts +27 -0
  35. package/dist/models/anthropic-surface.d.ts +5 -0
  36. package/dist/models/chat-model.d.ts +31 -0
  37. package/dist/models/github-model.d.ts +32 -0
  38. package/dist/models/http-transport.d.ts +10 -0
  39. package/dist/models/index.d.ts +16 -344
  40. package/dist/models/index.js +1 -1
  41. package/dist/models/mock-model.d.ts +15 -0
  42. package/dist/models/model-errors.d.ts +16 -0
  43. package/dist/models/model-limits.d.ts +7 -0
  44. package/dist/models/model-registry.d.ts +44 -0
  45. package/dist/models/model-surface-router.d.ts +19 -0
  46. package/dist/models/model-transports.d.ts +17 -0
  47. package/dist/models/openai-model.d.ts +67 -0
  48. package/dist/models/openai-surfaces.d.ts +74 -0
  49. package/dist/models/provider-adapter.d.ts +23 -0
  50. package/dist/models/provider-session.d.ts +16 -0
  51. package/dist/models/routed-model.d.ts +90 -0
  52. package/dist/shared/abort.d.ts +9 -0
  53. package/dist/shared/index.d.ts +5 -17
  54. package/dist/shared/index.js +1 -1
  55. package/dist/shared/reasoning-config.d.ts +5 -0
  56. package/dist/shared/turn-failed.d.ts +6 -0
  57. package/dist/shared/types.d.ts +737 -0
  58. package/dist/tools/ask-user-tool.d.ts +55 -0
  59. package/dist/tools/bash-tool.d.ts +63 -0
  60. package/dist/tools/command-tool.d.ts +23 -0
  61. package/dist/tools/file-edit-tool.d.ts +29 -0
  62. package/dist/tools/file-new-tool.d.ts +21 -0
  63. package/dist/tools/file-read-tool.d.ts +27 -0
  64. package/dist/tools/glob-tool.d.ts +26 -0
  65. package/dist/tools/grep-tool.d.ts +34 -0
  66. package/dist/tools/index.d.ts +28 -480
  67. package/dist/tools/index.js +1 -1
  68. package/dist/tools/internal-tool-runtime.d.ts +8 -0
  69. package/dist/tools/ls-tool.d.ts +20 -0
  70. package/dist/tools/lsp-tool.d.ts +36 -0
  71. package/dist/tools/mcp-oauth-provider.d.ts +11 -0
  72. package/dist/tools/mcp-server-manager.d.ts +43 -0
  73. package/dist/tools/mcp-tool-adapter.d.ts +47 -0
  74. package/dist/tools/mock-tool-runtime.d.ts +3 -0
  75. package/dist/tools/ripgrep.d.ts +20 -0
  76. package/dist/tools/runtime-manager-tools.d.ts +58 -0
  77. package/dist/tools/safe-fetch.d.ts +36 -0
  78. package/dist/tools/skill-tool.d.ts +33 -0
  79. package/dist/tools/todo-write-tool.d.ts +66 -0
  80. package/dist/tools/tool-output-offload.d.ts +12 -0
  81. package/dist/tools/tools.d.ts +24 -0
  82. package/dist/tools/update-topic-tool.d.ts +12 -0
  83. package/dist/tools/view-file-tool.d.ts +22 -0
  84. package/dist/tools/web-fetch-tool.d.ts +23 -0
  85. package/dist/tools/web-search-tool.d.ts +75 -0
  86. package/dist/tools/workspace-paths.d.ts +5 -0
  87. package/package.json +17 -4
  88. package/dist/chunk-G2FR4UGO.js +0 -1
  89. package/dist/chunk-LXQDGX4K.js +0 -1
  90. package/dist/chunk-VFTQW5WK.js +0 -1
  91. package/dist/provider-adapters-Cb5hUJoD.d.ts +0 -5
  92. package/dist/types-QPBW5jHO.d.ts +0 -695
@@ -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,67 @@
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 readonly responsesSocketSessions;
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
+ /**
50
+ * Drop an idle session state from the map so it does not accumulate for the
51
+ * life of this model instance. Only evicts when nothing is using it: no live
52
+ * or connecting socket and no held lock. Guarded against deleting a state that
53
+ * has already been replaced under the same key.
54
+ */
55
+ private maybeEvictResponsesSocketSession;
56
+ private getResponsesSocketSessionKey;
57
+ private acquireResponsesSocketLock;
58
+ private prepareResponsesSocketRequest;
59
+ private buildResponsesSocketEvent;
60
+ private findResponsesSocketCheckpoint;
61
+ private shouldRetryResponsesSocketRequest;
62
+ private invalidateResponsesSocketSession;
63
+ private getOrCreateResponsesSocket;
64
+ private streamViaPersistentResponsesSocket;
65
+ private streamViaResponsesSocketAttempt;
66
+ }
67
+ //# 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
@@ -1,17 +1,5 @@
1
- import { D as AutoReasoningEffort, u as ReasoningConfig, F as AnthropicThinkingConfig, G as OpenAiReasoningConfig } from '../types-QPBW5jHO.js';
2
- export { aJ as AgentAssistantChunkEvent, aI as AgentAssistantMessageEvent, bd as AgentDefinition, bc as AgentDefinitionFactoryContext, aU as AgentEvent, ay as AgentEventContext, aY as AgentEventHandler, aR as AgentFinalMessageEvent, a as AgentInput, aT as AgentLifecycleEvent, aG as AgentModelRequestEvent, aH as AgentModelResponseEvent, A as AgentOptions, aN as AgentReasoningChunkEvent, aM as AgentReasoningMessageEvent, b as AgentSendOptions, aO as AgentToolCallEvent, aP as AgentToolResultEvent, aQ as AgentToolResultMessageEvent, aL as AgentToolUseChunkEvent, aK as AgentToolUseMessageEvent, aS as AgentTurnCompleteEvent, aF as AgentUserMessageEvent, ab as AnthropicAdaptiveThinkingConfig, a5 as AnthropicAssistantContentBlock, ac as AnthropicDisabledThinkingConfig, aa as AnthropicEnabledThinkingConfig, a0 as AnthropicRedactedThinkingBlock, a4 as AnthropicRedactedThinkingWireBlock, ao as AnthropicSignatureDeltaChunk, $ as AnthropicThinkingBlock, an as AnthropicThinkingDeltaChunk, a8 as AnthropicThinkingDisplay, a9 as AnthropicThinkingEffort, a3 as AnthropicThinkingWireBlock, bb as AnyExtensionRegistration, b2 as AnyToolDefinition, ag as AssistantContentBlock, a7 as AutoReasoningConfig, B as BaseChatModelOptions, ax as ChatModel, j as ChatRequest, l as ChatResponse, v as ChatResponseChunk, h as CompileRequestInput, f as ContentBlock, al as ContentDeltaChunk, C as ContentInput, bl as CreateManagedRunInput, t as EngineChatModel, b5 as ExtensionContext, ba as ExtensionRegistration, E as ExtensionRegistry, ai as IdentifiedMessage, Y as ImageBlock, X as ImageMediaType, a_ as InferJsonSchema, H as JsonObject, J as JsonPrimitive, W as JsonSchema, U as JsonSchemaArray, Q as JsonSchemaBoolean, N as JsonSchemaNumber, V as JsonSchemaObject, L as JsonSchemaString, K as JsonSchemaType, I as JsonValue, bg as ManagedAgentRun, bh as ManagedAgentRunHandle, bf as ManagedRunError, bi as ManagedRunEvent, bj as ManagedRunEventHandler, be as ManagedRunStatus, M as Message, g as MessageInput, af as MessageProviderState, ah as MessageRole, w as ModelExecutionOptions, x as ModelInfo, ar as ModelLimits, i as ModelRequest, k as ModelResponse, b7 as Observer, b9 as ObserverExtensionRegistration, bp as OpenAiFunctionCall, bq as OpenAiFunctionCallOutput, bx as OpenAiFunctionTool, bn as OpenAiInputImage, bo as OpenAiInputMessage, bm as OpenAiInputText, bt as OpenAiOutputMessage, br as OpenAiOutputTextPart, a2 as OpenAiReasoningBlock, ap as OpenAiReasoningDeltaChunk, ad as OpenAiReasoningEffort, bu as OpenAiReasoningOutputItem, ae as OpenAiReasoningSummary, aq as OpenAiReasoningSummaryDeltaChunk, a1 as OpenAiReasoningSummaryText, bs as OpenAiRefusalPart, bv as OpenAiResponsesOutputItem, bw as OpenAiResponsesReasoningParam, O as OpenAiResponsesRequest, b4 as PayloadByStage, aw as PrepareRequestInput, r as PreparedRequest, s as ProviderCredential, y as ProviderCredentialKind, z as ProviderEndpoints, q as ProviderRequestMutator, P as ProviderSessionResolver, a6 as ReasoningVisibility, p as ResolvedProviderSession, R as RunTurnDeps, bk as RuntimeManagerOptions, b3 as Stage, S as SystemInput, e as TextBlock, b1 as ToolDefinition, az as ToolExecutionContext, b0 as ToolGenerator, au as ToolOutputEnvelope, a$ as ToolOutputValue, o as ToolResult, n as ToolResultBlock, at as ToolResultChunk, _ as ToolResultContent, Z as ToolResultContentBlock, as as ToolResultMeta, aZ as ToolRuntime, aC as ToolRuntimeCompletedEvent, aV as ToolRuntimeDispatchDecision, aE as ToolRuntimeEvent, aX as ToolRuntimeEventHandler, aB as ToolRuntimeOutputChunkEvent, aD as ToolRuntimeRejectedEvent, aA as ToolRuntimeStartedEvent, aW as ToolRuntimeToolCallHandler, aj as ToolSchema, m as ToolUseBlock, am as ToolUseDeltaChunk, b6 as Transformer, b8 as TransformerExtensionRegistration, c as TurnInput, T as TurnResult, av as TurnResultStatus, d as TurnState, ak as Usage } from '../types-QPBW5jHO.js';
3
-
4
- declare class OperationAbortedError extends Error {
5
- readonly code = "ABORT_ERR";
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
- export { AnthropicThinkingConfig, AutoReasoningEffort, OpenAiReasoningConfig, OperationAbortedError, ReasoningConfig, 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
@@ -1 +1 @@
1
- (function(_0x45bda9,_0x34f9be){var _0x286c51={_0x24b4cb:0xd8,_0x2de504:0xd4,_0xe75a21:0xd3,_0x541c02:0xd8,_0x56a0df:0xde,_0xb47cd5:0xd9,_0x10ec4e:0xd7,_0x31b4ac:0xd5,_0x583cd7:0x21d,_0x5d044a:0x221,_0x5c9d09:0x21a,_0x10e2a2:0x214,_0x184b11:0x219,_0x3a3cf1:0x215,_0x1ba193:0x222,_0x779ce3:0x21f,_0x5ce91f:0xd8,_0x412100:0xce},_0x44c47e={_0x4e7008:0x3c},_0x40edbc=_0x45bda9();function _0x241699(_0x48667c,_0xba3c4e,_0x5f5951,_0x2415b7){return _0x4b68(_0x2415b7- -0x2b4,_0xba3c4e);}function _0x2632bf(_0x438478,_0x481dd3,_0x116e4b,_0xfd1a1c){return _0x4b68(_0xfd1a1c-_0x44c47e._0x4e7008,_0x438478);}while(!![]){try{var _0x382f92=parseInt(_0x241699(-_0x286c51._0x24b4cb,-_0x286c51._0x2de504,-_0x286c51._0xe75a21,-0xd7))/0x1*(-parseInt(_0x241699(-0xd5,-_0x286c51._0x541c02,-_0x286c51._0x56a0df,-_0x286c51._0xb47cd5))/0x2)+-parseInt(_0x241699(-_0x286c51._0x10ec4e,-0xce,-0xce,-0xd3))/0x3*(-parseInt(_0x241699(-_0x286c51._0x24b4cb,-0xd3,-0xd5,-0xd8))/0x4)+-parseInt(_0x241699(-_0x286c51._0xe75a21,-0xd5,-0xd3,-_0x286c51._0x31b4ac))/0x5*(-parseInt(_0x2632bf(_0x286c51._0x583cd7,0x21c,_0x286c51._0x5d044a,0x21e))/0x6)+-parseInt(_0x2632bf(0x21c,0x217,0x21b,_0x286c51._0x5c9d09))/0x7+parseInt(_0x2632bf(_0x286c51._0x10e2a2,_0x286c51._0x184b11,_0x286c51._0x3a3cf1,0x216))/0x8+-parseInt(_0x2632bf(0x21a,_0x286c51._0x1ba193,0x222,_0x286c51._0x779ce3))/0x9+parseInt(_0x241699(-0xdf,-_0x286c51._0x56a0df,-_0x286c51._0x5ce91f,-0xdb))/0xa*(-parseInt(_0x241699(-0xd6,-0xd9,-_0x286c51._0x412100,-0xd4))/0xb);if(_0x382f92===_0x34f9be)break;else _0x40edbc['push'](_0x40edbc['shift']());}catch(_0xf39296){_0x40edbc['push'](_0x40edbc['shift']());}}}(_0x1002,0x6e122));import{mapAutoReasoningEffortToBudgetTokens,resolveAnthropicThinkingConfig,resolveOpenAiReasoningConfig}from'../chunk-NYZR4XKO.js';import{OperationAbortedError,addAbortListener,isAbortError,throwIfAborted,toAbortError}from'../chunk-X7VAACWY.js';function _0x4b68(_0x492945,_0x3865c9){_0x492945=_0x492945-0x1d9;var _0x1002db=_0x1002();var _0x4b68df=_0x1002db[_0x492945];if(_0x4b68['kZcJsm']===undefined){var _0x353924=function(_0x770c2){var _0x1beb2a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x252ee5='',_0x14ef2e='';for(var _0x580345=0x0,_0x36ac06,_0x2e9d2c,_0x4a9f24=0x0;_0x2e9d2c=_0x770c2['charAt'](_0x4a9f24++);~_0x2e9d2c&&(_0x36ac06=_0x580345%0x4?_0x36ac06*0x40+_0x2e9d2c:_0x2e9d2c,_0x580345++%0x4)?_0x252ee5+=String['fromCharCode'](0xff&_0x36ac06>>(-0x2*_0x580345&0x6)):0x0){_0x2e9d2c=_0x1beb2a['indexOf'](_0x2e9d2c);}for(var _0x204eff=0x0,_0x4bc1f9=_0x252ee5['length'];_0x204eff<_0x4bc1f9;_0x204eff++){_0x14ef2e+='%'+('00'+_0x252ee5['charCodeAt'](_0x204eff)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14ef2e);};_0x4b68['dbxWPb']=_0x353924,_0x4b68['IGHNCb']={},_0x4b68['kZcJsm']=!![];}var _0x3db008=_0x1002db[0x0],_0x4ee899=_0x492945+_0x3db008,_0x2a2e19=_0x4b68['IGHNCb'][_0x4ee899];return!_0x2a2e19?(_0x4b68df=_0x4b68['dbxWPb'](_0x4b68df),_0x4b68['IGHNCb'][_0x4ee899]=_0x4b68df):_0x4b68df=_0x2a2e19,_0x4b68df;}export{OperationAbortedError,addAbortListener,isAbortError,mapAutoReasoningEffortToBudgetTokens,resolveAnthropicThinkingConfig,resolveOpenAiReasoningConfig,throwIfAborted,toAbortError};function _0x1002(){var _0x59995e=['nda3ndG2ne9swufXra','nZC4ndjQCxHMEwG','nhrxBMfJsq','mtnxthvxthi','mtqYmJq3ueXzy1LK','nw1PB0T3AW','mJy0yLzHAw1u','mJi4nZGZmeH3uvjtEa','nZKYndi2B0Pfz2nw','mJyXnZC2n29nAerTwG','nty2odbfC0zSCe0'];_0x1002=function(){return _0x59995e;};return _0x1002();}
1
+ (function(_0xf877df,_0x4fc3ac){var _0x38e873={_0x5e9dfe:0x21f,_0x6a0d0:0x224,_0x1a3cb3:0x221,_0x58ab1b:0x21e,_0x355102:0x3b1,_0x45bc6d:0x3ac,_0x5b0c4d:0x218,_0x4f3dc6:0x3b6,_0x3acc12:0x3bb,_0x59f6f4:0x3bf,_0xd15874:0x3be,_0x504148:0x21a,_0x3ba607:0x225,_0x44991d:0x3b0,_0x23b504:0x3b3,_0x45f2e5:0x3b7,_0x71ecb4:0x3b2,_0x187eb7:0x3b8,_0x5e3b39:0x3b4,_0x3824ff:0x3b7,_0x3d65a1:0x225,_0x5d8a83:0x227,_0x32cb9b:0x229,_0x5f588b:0x21c,_0x5e725b:0x220},_0x5d22cb={_0x41ac66:0x24c},_0xacf212={_0x16a3f9:0xb6},_0x407e93=_0xf877df();function _0x46e963(_0x1da81c,_0x2e59b9,_0x3de7b3,_0x56a95a){return _0x1e59(_0x3de7b3-_0xacf212._0x16a3f9,_0x2e59b9);}function _0xf680ec(_0x35a03a,_0x3a5d6b,_0x2aad3c,_0x252591){return _0x1e59(_0x3a5d6b-_0x5d22cb._0x41ac66,_0x35a03a);}while(!![]){try{var _0x2b101c=-parseInt(_0x46e963(0x221,_0x38e873._0x5e9dfe,_0x38e873._0x6a0d0,_0x38e873._0x6a0d0))/0x1*(parseInt(_0x46e963(0x21f,0x225,_0x38e873._0x1a3cb3,_0x38e873._0x58ab1b))/0x2)+parseInt(_0xf680ec(_0x38e873._0x355102,0x3b0,_0x38e873._0x45bc6d,0x3ac))/0x3*(-parseInt(_0x46e963(_0x38e873._0x5b0c4d,0x21e,0x21b,0x21d))/0x4)+-parseInt(_0xf680ec(0x3b1,0x3b4,_0x38e873._0x4f3dc6,0x3ba))/0x5*(-parseInt(_0xf680ec(0x3bc,_0x38e873._0x3acc12,_0x38e873._0x59f6f4,_0x38e873._0xd15874))/0x6)+-parseInt(_0x46e963(_0x38e873._0x504148,_0x38e873._0x3ba607,_0x38e873._0x5e9dfe,_0x38e873._0x5b0c4d))/0x7*(parseInt(_0xf680ec(0x3a8,0x3af,0x3a9,_0x38e873._0x44991d))/0x8)+-parseInt(_0xf680ec(0x3bf,0x3b8,0x3bd,_0x38e873._0x23b504))/0x9*(parseInt(_0xf680ec(_0x38e873._0x45f2e5,_0x38e873._0x71ecb4,_0x38e873._0x23b504,_0x38e873._0x187eb7))/0xa)+parseInt(_0xf680ec(0x3b8,0x3b3,_0x38e873._0x5e3b39,_0x38e873._0x3824ff))/0xb*(parseInt(_0x46e963(_0x38e873._0x3d65a1,_0x38e873._0x5d8a83,0x223,_0x38e873._0x32cb9b))/0xc)+parseInt(_0x46e963(_0x38e873._0x5f588b,_0x38e873._0x5e725b,0x220,0x21b))/0xd;if(_0x2b101c===_0x4fc3ac)break;else _0x407e93['push'](_0x407e93['shift']());}catch(_0x142c97){_0x407e93['push'](_0x407e93['shift']());}}}(_0x2131,0x61980));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 _0x1e59(_0x28eb47,_0x2847d8){_0x28eb47=_0x28eb47-0x163;var _0x21314f=_0x2131();var _0x1e59c5=_0x21314f[_0x28eb47];if(_0x1e59['ewDEDz']===undefined){var _0x11411f=function(_0x26799c){var _0x349163='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1fc4b7='',_0x211b7d='';for(var _0x3b16b9=0x0,_0x419d97,_0x1dbed7,_0x231b9b=0x0;_0x1dbed7=_0x26799c['charAt'](_0x231b9b++);~_0x1dbed7&&(_0x419d97=_0x3b16b9%0x4?_0x419d97*0x40+_0x1dbed7:_0x1dbed7,_0x3b16b9++%0x4)?_0x1fc4b7+=String['fromCharCode'](0xff&_0x419d97>>(-0x2*_0x3b16b9&0x6)):0x0){_0x1dbed7=_0x349163['indexOf'](_0x1dbed7);}for(var _0x339d49=0x0,_0x3c6d24=_0x1fc4b7['length'];_0x339d49<_0x3c6d24;_0x339d49++){_0x211b7d+='%'+('00'+_0x1fc4b7['charCodeAt'](_0x339d49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x211b7d);};_0x1e59['TdVHDL']=_0x11411f,_0x1e59['ThSVxb']={},_0x1e59['ewDEDz']=!![];}var _0x15ff3c=_0x21314f[0x0],_0x5c54d8=_0x28eb47+_0x15ff3c,_0x4ce78c=_0x1e59['ThSVxb'][_0x5c54d8];return!_0x4ce78c?(_0x1e59c5=_0x1e59['TdVHDL'](_0x1e59c5),_0x1e59['ThSVxb'][_0x5c54d8]=_0x1e59c5):_0x1e59c5=_0x4ce78c,_0x1e59c5;}function _0x2131(){var _0x3eefbf=['mJqWnJK2ogXczgHqCa','m0H0sKzSzG','mJK1mdG5mMzYBgDXsW','mJbhCMrZCMG','nZi0mtmWrK9TreLe','mtuWmZaYnvznrKTOAG','n3zuswX5tq','mtK4ntu2mtvwB2rdv2W','odzjCMjoAeq','otq5mJKZDNvZB25V','mtjYtvfZC3K','nty4nNzuqufkDW','nMv2CNjSqq'];_0x2131=function(){return _0x3eefbf;};return _0x2131();}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
@@ -0,0 +1,6 @@
1
+ import type { TurnState } from "./types.ts";
2
+ export declare class TurnFailedError extends Error {
3
+ readonly state: TurnState;
4
+ constructor(cause: unknown, state: TurnState);
5
+ }
6
+ //# sourceMappingURL=turn-failed.d.ts.map