@aeye/ai 0.1.0
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 +1324 -0
- package/dist/ai.d.ts +204 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +837 -0
- package/dist/ai.js.map +1 -0
- package/dist/apis/base.d.ts +181 -0
- package/dist/apis/base.d.ts.map +1 -0
- package/dist/apis/base.js +359 -0
- package/dist/apis/base.js.map +1 -0
- package/dist/apis/chat.d.ts +82 -0
- package/dist/apis/chat.d.ts.map +1 -0
- package/dist/apis/chat.js +214 -0
- package/dist/apis/chat.js.map +1 -0
- package/dist/apis/embed.d.ts +27 -0
- package/dist/apis/embed.d.ts.map +1 -0
- package/dist/apis/embed.js +70 -0
- package/dist/apis/embed.js.map +1 -0
- package/dist/apis/image.d.ts +77 -0
- package/dist/apis/image.d.ts.map +1 -0
- package/dist/apis/image.js +313 -0
- package/dist/apis/image.js.map +1 -0
- package/dist/apis/models.d.ts +108 -0
- package/dist/apis/models.d.ts.map +1 -0
- package/dist/apis/models.js +118 -0
- package/dist/apis/models.js.map +1 -0
- package/dist/apis/speech.d.ts +27 -0
- package/dist/apis/speech.d.ts.map +1 -0
- package/dist/apis/speech.js +79 -0
- package/dist/apis/speech.js.map +1 -0
- package/dist/apis/transcribe.d.ts +26 -0
- package/dist/apis/transcribe.d.ts.map +1 -0
- package/dist/apis/transcribe.js +103 -0
- package/dist/apis/transcribe.js.map +1 -0
- package/dist/common.d.ts +10 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +17 -0
- package/dist/common.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/modelDetection.d.ts +31 -0
- package/dist/modelDetection.d.ts.map +1 -0
- package/dist/modelDetection.js +78 -0
- package/dist/modelDetection.js.map +1 -0
- package/dist/registry.d.ts +150 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +639 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +767 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
package/dist/ai.d.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Class - Main Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Instance-based AI library similar to OpenAI's SDK.
|
|
5
|
+
* Provides type-safe, scoped access to AI capabilities with hooks and context injection.
|
|
6
|
+
*/
|
|
7
|
+
import { Agent, Extend, MessageContentType, Prompt, Tool, ToolCompatible, Tuple } from '@aeye/core';
|
|
8
|
+
import { ChatAPI } from './apis/chat';
|
|
9
|
+
import { EmbedAPI } from './apis/embed';
|
|
10
|
+
import { ImageAPI } from './apis/image';
|
|
11
|
+
import { ModelsAPI } from './apis/models';
|
|
12
|
+
import { SpeechAPI } from './apis/speech';
|
|
13
|
+
import { TranscribeAPI } from './apis/transcribe';
|
|
14
|
+
import { ModelRegistry } from './registry';
|
|
15
|
+
import type { AgentInput, AIBaseMetadata, AIBaseTypes, AIConfig, AIConfigOf, AIContext, AIContextOptional, AIContextRequired, AIContextUser, AIHooks, AIMetadata, AIMetadataRequired, AIMetadataUser, AIProviderNames, AIProviders, AITypesInfer, ComponentFor, ComponentInput, ComponentOutput, Context, LibraryStats, Message, ModelInfo, ModelOverride, PromptInput, Providers, Request, SelectedModelFor, ToolInput, Usage } from './types';
|
|
16
|
+
/**
|
|
17
|
+
* AI Class
|
|
18
|
+
*
|
|
19
|
+
* @template T - AIBaseTypes container with all type information
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const ai = AI.with<AppContext, AppMetadata>()
|
|
24
|
+
* .providers({ openai, openrouter })
|
|
25
|
+
* .create({
|
|
26
|
+
* defaultContext: { baseURL: 'https://api.example.com' },
|
|
27
|
+
* providedContext: async (ctx) => ({ db, user }),
|
|
28
|
+
* hooks: {
|
|
29
|
+
* beforeRequest: async (ctx, request, selected, estimatedTokens, estimatedCost) => {
|
|
30
|
+
* // Check budget
|
|
31
|
+
* },
|
|
32
|
+
* afterRequest: async (ctx, request, response, responseComplete, selected, usage, cost) => {
|
|
33
|
+
* // Track usage
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* // Use the API
|
|
39
|
+
* const response = await ai.chat.get([{ role: 'user', content: 'Hi' }]);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class AI<T extends AIBaseTypes> {
|
|
43
|
+
readonly config: AIConfigOf<T>;
|
|
44
|
+
readonly registry: ModelRegistry<AIProviders<T>>;
|
|
45
|
+
readonly chat: ChatAPI<T>;
|
|
46
|
+
readonly image: ImageAPI<T>;
|
|
47
|
+
readonly speech: SpeechAPI<T>;
|
|
48
|
+
readonly transcribe: TranscribeAPI<T>;
|
|
49
|
+
readonly embed: EmbedAPI<T>;
|
|
50
|
+
readonly models: ModelsAPI<AIProviders<T>>;
|
|
51
|
+
readonly providers: AIProviders<T>;
|
|
52
|
+
readonly components: ComponentFor<T>[];
|
|
53
|
+
hooks: AIHooks<T>;
|
|
54
|
+
private cumulativeCost;
|
|
55
|
+
private cumulativeLatency;
|
|
56
|
+
private cumulativeRequestCount;
|
|
57
|
+
readonly tokens: Record<MessageContentType, {
|
|
58
|
+
divisor: number;
|
|
59
|
+
base64Divisor: number;
|
|
60
|
+
fallback: number;
|
|
61
|
+
max?: number;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Static builder for creating AI instances with type inference
|
|
65
|
+
*/
|
|
66
|
+
static with<TContext extends AIContextUser = {}, TMetadata extends AIMetadataUser = {}>(): {
|
|
67
|
+
providers: <TProviders extends Providers>(providers: TProviders) => {
|
|
68
|
+
create: <TConfig extends Omit<AIConfig<TContext, TMetadata, TProviders>, "providers">>(config: TConfig) => AI<AITypesInfer<TContext, TMetadata, TProviders, TConfig>>;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
constructor(config: AIConfigOf<T>);
|
|
72
|
+
/**
|
|
73
|
+
* Sets the hooks for this AI instance and returns the instance.
|
|
74
|
+
*
|
|
75
|
+
* @param hooks - Hooks to set
|
|
76
|
+
* @returns this
|
|
77
|
+
*/
|
|
78
|
+
withHooks(hooks: AIHooks<T>): this;
|
|
79
|
+
/**
|
|
80
|
+
* Build full context from required context
|
|
81
|
+
*
|
|
82
|
+
* Merges defaults → provided → required in that order
|
|
83
|
+
*
|
|
84
|
+
* @param requiredCtx - Required context provided by caller
|
|
85
|
+
* @returns Full AIContext with all fields populated
|
|
86
|
+
*/
|
|
87
|
+
buildContext(requiredCtx: AIContextRequired<T>): Promise<AIContext<T>>;
|
|
88
|
+
/**
|
|
89
|
+
* Build core context with executor and streamer injected from ChatAPI
|
|
90
|
+
*
|
|
91
|
+
* This is used by Prompts to get stream/execute functions in the context.
|
|
92
|
+
*
|
|
93
|
+
* @param requiredCtx - Required context provided by caller
|
|
94
|
+
* @returns Full context with stream and execute functions
|
|
95
|
+
*/
|
|
96
|
+
buildCoreContext(requiredCtx: AIContextRequired<T>): Promise<Context<T>>;
|
|
97
|
+
/**
|
|
98
|
+
* Build full metadata from required metadata
|
|
99
|
+
*
|
|
100
|
+
* Merges defaults → provided → required in that order
|
|
101
|
+
*
|
|
102
|
+
* @param requiredMetadata - Required metadata provided by caller
|
|
103
|
+
* @returns Full AIMetadata with all fields populated
|
|
104
|
+
*/
|
|
105
|
+
buildMetadata(requiredMetadata: AIMetadataRequired<T>): Promise<AIMetadata<T>>;
|
|
106
|
+
/**
|
|
107
|
+
* Merges multiple metadata objects into one. Some properties may be
|
|
108
|
+
* merged in a special way depending on their type. The metadata objects
|
|
109
|
+
* are merged in the order they are provided, with later objects
|
|
110
|
+
* overriding earlier ones.
|
|
111
|
+
*
|
|
112
|
+
* @param metadatas
|
|
113
|
+
* @returns
|
|
114
|
+
*/
|
|
115
|
+
mergeMetadata(...metadatas: Array<Partial<AIMetadata<T> | undefined>>): AIMetadata<T>;
|
|
116
|
+
/**
|
|
117
|
+
* Select a model based on metadata (used by API classes)
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
selectModel(metadata: AIMetadata<T>): SelectedModelFor<T> | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* Estimate usage for a message (used by API classes and Prompts)
|
|
123
|
+
*
|
|
124
|
+
* @param message - Message to estimate usage for
|
|
125
|
+
* @returns Usage statistics structured to match ModelPricing
|
|
126
|
+
*/
|
|
127
|
+
estimateMessageUsage(message: Message): Usage;
|
|
128
|
+
/**
|
|
129
|
+
* Estimate usage for a request (used by API classes)
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
estimateRequestUsage(request: Request): Usage;
|
|
133
|
+
/**
|
|
134
|
+
* Calculate cost for a request (used by API classes)
|
|
135
|
+
* Matches the structure of Usage to ModelPricing for accurate cost calculation.
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
calculateCost(model: ModelInfo<AIProviderNames<T>>, usage: Usage): number;
|
|
139
|
+
/**
|
|
140
|
+
* Determines whether a given override matches a model.
|
|
141
|
+
*
|
|
142
|
+
* @param model - Model information
|
|
143
|
+
* @param override - Model override to check
|
|
144
|
+
* @returns
|
|
145
|
+
*/
|
|
146
|
+
matchesOverride(model: ModelInfo, override: ModelOverride): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Run a component with AI instance context.
|
|
149
|
+
*
|
|
150
|
+
* @param component - Component to run
|
|
151
|
+
* @param input - Input for the component
|
|
152
|
+
* @param ctx - Optional context
|
|
153
|
+
*/
|
|
154
|
+
run<C extends ComponentFor<T>>(component: C, input: ComponentInput<C>, ...[ctx]: AIContextOptional<T>): Promise<ComponentOutput<C>>;
|
|
155
|
+
/**
|
|
156
|
+
* Create an enhanced prompt bound to this AI instance.
|
|
157
|
+
*
|
|
158
|
+
* @template TName - Name of the prompt.
|
|
159
|
+
* @template TInput - Input type for the prompt.
|
|
160
|
+
* @template TOutput - Output type for the prompt.
|
|
161
|
+
* @template TTools - Tools used by the prompt.
|
|
162
|
+
* @param options - Prompt configuration options.
|
|
163
|
+
* @returns - An enhanced prompt instance.
|
|
164
|
+
*/
|
|
165
|
+
prompt<TName extends string = string, TInput extends object = {}, TOutput extends object | string = string, TTools extends Tuple<ToolCompatible<AIContextRequired<T>, AIMetadataRequired<T>>> = []>(options: Omit<PromptInput<AIContext<T>, AIMetadata<T>, TName, TInput, TOutput, TTools>, 'types'>): Prompt<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TInput, TOutput, TTools>;
|
|
166
|
+
/**
|
|
167
|
+
* Create an enhanced tool bound to this AI instance
|
|
168
|
+
*/
|
|
169
|
+
tool<TName extends string = string, TParams extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = []>(options: Omit<ToolInput<AIContext<T>, AIMetadata<T>, TName, TParams, TOutput, TRefs>, 'types'>): Tool<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TParams, Promise<TOutput>, TRefs>;
|
|
170
|
+
/**
|
|
171
|
+
* Create an enhanced agent bound to this AI instance
|
|
172
|
+
*/
|
|
173
|
+
agent<TName extends string = string, TInput extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = []>(options: Omit<AgentInput<AIContext<T>, AIMetadata<T>, TName, TInput, TOutput, TRefs>, 'types'>): Agent<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TInput, Promise<TOutput>, TRefs>;
|
|
174
|
+
/**
|
|
175
|
+
* Extend this AI instance with additional context type
|
|
176
|
+
*
|
|
177
|
+
* Creates a new AI instance that shares the base model registry but can have
|
|
178
|
+
* its own models, overrides, handlers, and extended context type.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* const chatAI = ai.extend<{ chat: Chat, chatMessage: ChatMessage }>({
|
|
183
|
+
* defaultContext: { chat, chatMessage },
|
|
184
|
+
* modelOverrides: [...]
|
|
185
|
+
* });
|
|
186
|
+
* const chatAgent = chatAI.agent({...});
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
extend<TExtendedContext extends object = {}, TExtendedMetadata extends object = {}>(config?: Partial<AIConfig<Extend<T['Context'], TExtendedContext>, Extend<T['Metadata'], TExtendedMetadata>, AIProviders<T>>>): AI<AITypesInfer<Extend<T["Context"], TExtendedContext>, Extend<T["Metadata"], TExtendedMetadata>, AIProviders<T>, Partial<AIConfig<Extend<T["Context"], TExtendedContext>, Extend<T["Metadata"], TExtendedMetadata>, AIProviders<T>>>>>;
|
|
190
|
+
/**
|
|
191
|
+
* Track a request's cost and latency for statistics.
|
|
192
|
+
* Called internally by API classes after successful requests.
|
|
193
|
+
*
|
|
194
|
+
* @param cost - Cost of the request in dollars
|
|
195
|
+
* @param latency - Latency of the request in milliseconds
|
|
196
|
+
* @internal
|
|
197
|
+
*/
|
|
198
|
+
trackRequest(cost: number, latency: number): void;
|
|
199
|
+
/**
|
|
200
|
+
* Get library statistics
|
|
201
|
+
*/
|
|
202
|
+
stats(): LibraryStats;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=ai.d.ts.map
|
package/dist/ai.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
|