adonis-ai-kit 0.0.0-stage → 1.2.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/CHANGELOG.md +74 -0
- package/LICENSE +21 -0
- package/README.md +397 -2
- package/dist/commands/ai_test.d.ts +12 -0
- package/dist/commands/ai_test.d.ts.map +1 -0
- package/dist/commands/ai_test.js +98 -0
- package/dist/commands/ai_test.js.map +1 -0
- package/dist/commands/main.d.ts +14 -0
- package/dist/commands/main.d.ts.map +1 -0
- package/dist/commands/main.js +31 -0
- package/dist/commands/main.js.map +1 -0
- package/dist/commands/make_agent.d.ts +13 -0
- package/dist/commands/make_agent.d.ts.map +1 -0
- package/dist/commands/make_agent.js +116 -0
- package/dist/commands/make_agent.js.map +1 -0
- package/dist/providers/ai_provider.d.ts +23 -0
- package/dist/providers/ai_provider.d.ts.map +1 -0
- package/dist/providers/ai_provider.js +34 -0
- package/dist/providers/ai_provider.js.map +1 -0
- package/dist/services/main.d.ts +4 -0
- package/dist/services/main.d.ts.map +1 -0
- package/dist/services/main.js +7 -0
- package/dist/services/main.js.map +1 -0
- package/dist/src/acp/acp_agents.d.ts +89 -0
- package/dist/src/acp/acp_agents.d.ts.map +1 -0
- package/dist/src/acp/acp_agents.js +367 -0
- package/dist/src/acp/acp_agents.js.map +1 -0
- package/dist/src/acp/index.d.ts +4 -0
- package/dist/src/acp/index.d.ts.map +1 -0
- package/dist/src/acp/index.js +4 -0
- package/dist/src/acp/index.js.map +1 -0
- package/dist/src/acp/provider.d.ts +74 -0
- package/dist/src/acp/provider.d.ts.map +1 -0
- package/dist/src/acp/provider.js +276 -0
- package/dist/src/acp/provider.js.map +1 -0
- package/dist/src/acp/types.d.ts +128 -0
- package/dist/src/acp/types.d.ts.map +1 -0
- package/dist/src/acp/types.js +2 -0
- package/dist/src/acp/types.js.map +1 -0
- package/dist/src/agents/agent_runner.d.ts +60 -0
- package/dist/src/agents/agent_runner.d.ts.map +1 -0
- package/dist/src/agents/agent_runner.js +134 -0
- package/dist/src/agents/agent_runner.js.map +1 -0
- package/dist/src/agents/index.d.ts +4 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +4 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/loader.d.ts +56 -0
- package/dist/src/agents/loader.d.ts.map +1 -0
- package/dist/src/agents/loader.js +184 -0
- package/dist/src/agents/loader.js.map +1 -0
- package/dist/src/agents/manifest.d.ts +61 -0
- package/dist/src/agents/manifest.d.ts.map +1 -0
- package/dist/src/agents/manifest.js +35 -0
- package/dist/src/agents/manifest.js.map +1 -0
- package/dist/src/ai_manager.d.ts +140 -0
- package/dist/src/ai_manager.d.ts.map +1 -0
- package/dist/src/ai_manager.js +814 -0
- package/dist/src/ai_manager.js.map +1 -0
- package/dist/src/budget/budget_allocator.d.ts +37 -0
- package/dist/src/budget/budget_allocator.d.ts.map +1 -0
- package/dist/src/budget/budget_allocator.js +98 -0
- package/dist/src/budget/budget_allocator.js.map +1 -0
- package/dist/src/budget/budget_enforcer.d.ts +70 -0
- package/dist/src/budget/budget_enforcer.d.ts.map +1 -0
- package/dist/src/budget/budget_enforcer.js +195 -0
- package/dist/src/budget/budget_enforcer.js.map +1 -0
- package/dist/src/budget/cost_tracker.d.ts +71 -0
- package/dist/src/budget/cost_tracker.d.ts.map +1 -0
- package/dist/src/budget/cost_tracker.js +199 -0
- package/dist/src/budget/cost_tracker.js.map +1 -0
- package/dist/src/budget/index.d.ts +6 -0
- package/dist/src/budget/index.d.ts.map +1 -0
- package/dist/src/budget/index.js +6 -0
- package/dist/src/budget/index.js.map +1 -0
- package/dist/src/budget/pricing.d.ts +35 -0
- package/dist/src/budget/pricing.d.ts.map +1 -0
- package/dist/src/budget/pricing.js +129 -0
- package/dist/src/budget/pricing.js.map +1 -0
- package/dist/src/budget/types.d.ts +86 -0
- package/dist/src/budget/types.d.ts.map +1 -0
- package/dist/src/budget/types.js +2 -0
- package/dist/src/budget/types.js.map +1 -0
- package/dist/src/catalog/index.d.ts +3 -0
- package/dist/src/catalog/index.d.ts.map +1 -0
- package/dist/src/catalog/index.js +3 -0
- package/dist/src/catalog/index.js.map +1 -0
- package/dist/src/catalog/models_dev.d.ts +87 -0
- package/dist/src/catalog/models_dev.d.ts.map +1 -0
- package/dist/src/catalog/models_dev.js +38 -0
- package/dist/src/catalog/models_dev.js.map +1 -0
- package/dist/src/catalog/source.d.ts +67 -0
- package/dist/src/catalog/source.d.ts.map +1 -0
- package/dist/src/catalog/source.js +678 -0
- package/dist/src/catalog/source.js.map +1 -0
- package/dist/src/circuit_breaker.d.ts +61 -0
- package/dist/src/circuit_breaker.d.ts.map +1 -0
- package/dist/src/circuit_breaker.js +217 -0
- package/dist/src/circuit_breaker.js.map +1 -0
- package/dist/src/define_config.d.ts +11 -0
- package/dist/src/define_config.d.ts.map +1 -0
- package/dist/src/define_config.js +48 -0
- package/dist/src/define_config.js.map +1 -0
- package/dist/src/error_classifier.d.ts +50 -0
- package/dist/src/error_classifier.d.ts.map +1 -0
- package/dist/src/error_classifier.js +206 -0
- package/dist/src/error_classifier.js.map +1 -0
- package/dist/src/errors.d.ts +52 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +70 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/guard/confirmation.d.ts +67 -0
- package/dist/src/guard/confirmation.d.ts.map +1 -0
- package/dist/src/guard/confirmation.js +180 -0
- package/dist/src/guard/confirmation.js.map +1 -0
- package/dist/src/guard/errors.d.ts +10 -0
- package/dist/src/guard/errors.d.ts.map +1 -0
- package/dist/src/guard/errors.js +14 -0
- package/dist/src/guard/errors.js.map +1 -0
- package/dist/src/guard/guard.d.ts +47 -0
- package/dist/src/guard/guard.d.ts.map +1 -0
- package/dist/src/guard/guard.js +133 -0
- package/dist/src/guard/guard.js.map +1 -0
- package/dist/src/guard/index.d.ts +7 -0
- package/dist/src/guard/index.d.ts.map +1 -0
- package/dist/src/guard/index.js +7 -0
- package/dist/src/guard/index.js.map +1 -0
- package/dist/src/guard/registry.d.ts +72 -0
- package/dist/src/guard/registry.d.ts.map +1 -0
- package/dist/src/guard/registry.js +192 -0
- package/dist/src/guard/registry.js.map +1 -0
- package/dist/src/guard/schema_registry.d.ts +37 -0
- package/dist/src/guard/schema_registry.d.ts.map +1 -0
- package/dist/src/guard/schema_registry.js +57 -0
- package/dist/src/guard/schema_registry.js.map +1 -0
- package/dist/src/guard/types.d.ts +63 -0
- package/dist/src/guard/types.d.ts.map +1 -0
- package/dist/src/guard/types.js +2 -0
- package/dist/src/guard/types.js.map +1 -0
- package/dist/src/index.d.ts +16 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logger.d.ts +7 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +2 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/models/catalog_resolver.d.ts +24 -0
- package/dist/src/models/catalog_resolver.d.ts.map +1 -0
- package/dist/src/models/catalog_resolver.js +66 -0
- package/dist/src/models/catalog_resolver.js.map +1 -0
- package/dist/src/models/index.d.ts +14 -0
- package/dist/src/models/index.d.ts.map +1 -0
- package/dist/src/models/index.js +8 -0
- package/dist/src/models/index.js.map +1 -0
- package/dist/src/models/keys.d.ts +9 -0
- package/dist/src/models/keys.d.ts.map +1 -0
- package/dist/src/models/keys.js +12 -0
- package/dist/src/models/keys.js.map +1 -0
- package/dist/src/models/language_model_factory.d.ts +44 -0
- package/dist/src/models/language_model_factory.d.ts.map +1 -0
- package/dist/src/models/language_model_factory.js +193 -0
- package/dist/src/models/language_model_factory.js.map +1 -0
- package/dist/src/models/model_chain.d.ts +58 -0
- package/dist/src/models/model_chain.d.ts.map +1 -0
- package/dist/src/models/model_chain.js +144 -0
- package/dist/src/models/model_chain.js.map +1 -0
- package/dist/src/models/model_ref.d.ts +12 -0
- package/dist/src/models/model_ref.d.ts.map +1 -0
- package/dist/src/models/model_ref.js +33 -0
- package/dist/src/models/model_ref.js.map +1 -0
- package/dist/src/models/protocols.d.ts +6 -0
- package/dist/src/models/protocols.d.ts.map +1 -0
- package/dist/src/models/protocols.js +33 -0
- package/dist/src/models/protocols.js.map +1 -0
- package/dist/src/models/provider_factories.d.ts +19 -0
- package/dist/src/models/provider_factories.d.ts.map +1 -0
- package/dist/src/models/provider_factories.js +70 -0
- package/dist/src/models/provider_factories.js.map +1 -0
- package/dist/src/models/types.d.ts +17 -0
- package/dist/src/models/types.d.ts.map +1 -0
- package/dist/src/models/types.js +2 -0
- package/dist/src/models/types.js.map +1 -0
- package/dist/src/response_macro.d.ts +16 -0
- package/dist/src/response_macro.d.ts.map +1 -0
- package/dist/src/response_macro.js +151 -0
- package/dist/src/response_macro.js.map +1 -0
- package/dist/src/types.d.ts +340 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/usage.d.ts +13 -0
- package/dist/src/usage.d.ts.map +1 -0
- package/dist/src/usage.js +61 -0
- package/dist/src/usage.js.map +1 -0
- package/package.json +208 -4
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { LanguageModel, ModelMessage, StepResult, StopCondition, StreamTextResult as AiStreamTextResult, TextStreamPart, ToolSet } from 'ai';
|
|
3
|
+
import type { ModelPricing } from './budget/types.js';
|
|
4
|
+
import type { ActionGuard, ToolPermission } from './guard/types.js';
|
|
5
|
+
import type { ConfirmationService } from './guard/confirmation.js';
|
|
6
|
+
import type { AcpProviderConfig } from './acp/types.js';
|
|
7
|
+
import type { ModelResolver } from './models/catalog_resolver.js';
|
|
8
|
+
import type { LanguageModelFactory } from './models/language_model_factory.js';
|
|
9
|
+
import type { FallbackEvent } from './models/model_chain.js';
|
|
10
|
+
import type { ResolvedModel } from './models/types.js';
|
|
11
|
+
export type CircuitBreakerState = 'closed' | 'open' | 'half_open';
|
|
12
|
+
export interface CircuitBreakerConfig {
|
|
13
|
+
/**
|
|
14
|
+
* Number of consecutive failures before opening the circuit breaker.
|
|
15
|
+
* Default: 5
|
|
16
|
+
*/
|
|
17
|
+
failureThreshold?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Cooldown period in milliseconds before attempting recovery.
|
|
20
|
+
* Default: 30000 (30 seconds)
|
|
21
|
+
*/
|
|
22
|
+
recoveryTimeoutMs?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Number of SUCCESSFUL probe requests in half-open state required to close the circuit.
|
|
25
|
+
* Default: 2
|
|
26
|
+
*/
|
|
27
|
+
halfOpenMaxAttempts?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum number of probe requests allowed in flight at the same time while half-open.
|
|
30
|
+
* Further requests are rejected until a probe finishes. Default: 1
|
|
31
|
+
*/
|
|
32
|
+
halfOpenMaxConcurrent?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Optional callback when circuit breaker state changes. Errors thrown here are swallowed.
|
|
35
|
+
* The first argument is the breaker key (`provider:model`).
|
|
36
|
+
*/
|
|
37
|
+
onStateChange?: (key: string, from: CircuitBreakerState, to: CircuitBreakerState) => void;
|
|
38
|
+
}
|
|
39
|
+
export interface CircuitBreakerStats {
|
|
40
|
+
state: CircuitBreakerState;
|
|
41
|
+
failures: number;
|
|
42
|
+
successes: number;
|
|
43
|
+
lastFailureTime: number | null;
|
|
44
|
+
nextAttemptAllowedAt: number | null;
|
|
45
|
+
}
|
|
46
|
+
export interface BaseProviderConfig {
|
|
47
|
+
defaultModel?: string;
|
|
48
|
+
headers?: Record<string, string>;
|
|
49
|
+
baseURL?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface OpenAIProviderConfig extends BaseProviderConfig {
|
|
52
|
+
driver: 'openai';
|
|
53
|
+
apiKey?: string;
|
|
54
|
+
organization?: string;
|
|
55
|
+
project?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface AnthropicProviderConfig extends BaseProviderConfig {
|
|
58
|
+
driver: 'anthropic';
|
|
59
|
+
apiKey?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface GoogleProviderConfig extends BaseProviderConfig {
|
|
62
|
+
driver: 'google' | 'gemini';
|
|
63
|
+
apiKey?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface GroqProviderConfig extends BaseProviderConfig {
|
|
66
|
+
driver: 'groq';
|
|
67
|
+
apiKey?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface OllamaProviderConfig extends BaseProviderConfig {
|
|
70
|
+
driver: 'ollama';
|
|
71
|
+
baseURL?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CustomProviderConfig extends BaseProviderConfig {
|
|
74
|
+
driver: 'custom';
|
|
75
|
+
/** Returns an AI SDK language model, or a function `(modelId) => LanguageModel`. */
|
|
76
|
+
factory: (config: CustomProviderConfig) => Promise<LanguageModel | ((modelId: string) => LanguageModel)> | LanguageModel | ((modelId: string) => LanguageModel);
|
|
77
|
+
}
|
|
78
|
+
export type { AcpProviderConfig, AcpMcpServerConfig, AcpAgentConfig, AcpAgentRuntimeConfig, AcpPermissionPolicy, } from './acp/types.js';
|
|
79
|
+
export type ProviderConfig = OpenAIProviderConfig | AnthropicProviderConfig | GoogleProviderConfig | GroqProviderConfig | OllamaProviderConfig | AcpProviderConfig | CustomProviderConfig;
|
|
80
|
+
export interface BudgetConfig {
|
|
81
|
+
maxTokensPerRequest?: number;
|
|
82
|
+
maxCostPerRequestUsd?: number;
|
|
83
|
+
defaultAgentName?: string;
|
|
84
|
+
pricing?: Record<string, ModelPricing>;
|
|
85
|
+
}
|
|
86
|
+
export interface CatalogConfig {
|
|
87
|
+
/**
|
|
88
|
+
* Whether to prefer cached models.dev catalog if available.
|
|
89
|
+
* Default: true
|
|
90
|
+
*/
|
|
91
|
+
preferCache?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Custom path to models.dev.json cache file.
|
|
94
|
+
*/
|
|
95
|
+
cachePath?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Custom path to override models catalog json file.
|
|
98
|
+
*/
|
|
99
|
+
overridePath?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Which system providers to inject into the catalog when missing: built-in
|
|
102
|
+
* `fallback` providers (openai / anthropic / google) and `acp` agents (`acp-<id>`).
|
|
103
|
+
* Both default to true.
|
|
104
|
+
*/
|
|
105
|
+
systemProviders?: {
|
|
106
|
+
fallback?: boolean;
|
|
107
|
+
acp?: boolean;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Whether to automatically fetch and update model pricing from models.dev into the budget tracker.
|
|
111
|
+
* Default: true
|
|
112
|
+
*/
|
|
113
|
+
autoPricing?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* How long a cached catalog (memory and disk) stays fresh before it is refreshed, in ms.
|
|
116
|
+
* Default: 24 hours
|
|
117
|
+
*/
|
|
118
|
+
ttlMs?: number;
|
|
119
|
+
}
|
|
120
|
+
export interface AiConfig {
|
|
121
|
+
/**
|
|
122
|
+
* Default provider key (e.g. 'openai')
|
|
123
|
+
*/
|
|
124
|
+
default: string;
|
|
125
|
+
/**
|
|
126
|
+
* Configured providers
|
|
127
|
+
*/
|
|
128
|
+
providers: Record<string, ProviderConfig>;
|
|
129
|
+
/**
|
|
130
|
+
* Ordered list of provider keys to try if the primary provider fails.
|
|
131
|
+
* Only providers listed here are used as fallbacks; ACP agents (local CLIs with shell/file
|
|
132
|
+
* access) are never added automatically.
|
|
133
|
+
*/
|
|
134
|
+
fallbackCascade?: string[];
|
|
135
|
+
/**
|
|
136
|
+
* Model to use on a given fallback provider. When absent, the fallback provider's own
|
|
137
|
+
* `defaultModel` is used; the model requested for the primary provider is never forwarded.
|
|
138
|
+
*/
|
|
139
|
+
fallbackModels?: Record<string, string>;
|
|
140
|
+
/**
|
|
141
|
+
* Resilience circuit breaker configuration
|
|
142
|
+
*/
|
|
143
|
+
circuitBreaker?: CircuitBreakerConfig;
|
|
144
|
+
/**
|
|
145
|
+
* Token and cost budget configuration
|
|
146
|
+
*/
|
|
147
|
+
budget?: BudgetConfig;
|
|
148
|
+
/**
|
|
149
|
+
* models.dev catalog discovery & metadata caching configuration
|
|
150
|
+
*/
|
|
151
|
+
catalog?: CatalogConfig;
|
|
152
|
+
/**
|
|
153
|
+
* Path to agent configuration markdown files directory (defaults to resources/agent-configs)
|
|
154
|
+
*/
|
|
155
|
+
agentConfigsDir?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Path to agent skills markdown files directory (defaults to resources/agent-skills)
|
|
158
|
+
*/
|
|
159
|
+
agentSkillsDir?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Whether to log detailed AI calls
|
|
162
|
+
*/
|
|
163
|
+
logging?: boolean;
|
|
164
|
+
/** Resolves string entries of a call's `models` chain. Required to use model references there. */
|
|
165
|
+
resolver?: ModelResolver;
|
|
166
|
+
/** Builds language models for `models` chains. Defaults to a `LanguageModelFactory` created lazily. */
|
|
167
|
+
languageModels?: LanguageModelFactory;
|
|
168
|
+
}
|
|
169
|
+
/** Options shared by calls that can run over a dynamic model chain. */
|
|
170
|
+
export interface ModelChainCallOptions {
|
|
171
|
+
/**
|
|
172
|
+
* Ordered chain of models (resolved models or references). When non-empty, the provider cascade
|
|
173
|
+
* is not used: each entry is tried in order with its own per-credential circuit breaker.
|
|
174
|
+
*/
|
|
175
|
+
models?: Array<ResolvedModel | string>;
|
|
176
|
+
/** Called when a model failed with a retryable error, or could not be attempted (missing provider package, config error, open breaker), and the next entry is about to be tried. */
|
|
177
|
+
onFallback?: (event: FallbackEvent) => unknown;
|
|
178
|
+
}
|
|
179
|
+
export interface AiDriver {
|
|
180
|
+
readonly name: string;
|
|
181
|
+
readonly defaultModel: string;
|
|
182
|
+
getModel(modelName?: string): LanguageModel | Promise<LanguageModel>;
|
|
183
|
+
ping?(): Promise<{
|
|
184
|
+
ok: boolean;
|
|
185
|
+
latencyMs: number;
|
|
186
|
+
error?: string;
|
|
187
|
+
}>;
|
|
188
|
+
/** Releases resources held by the driver (e.g. child processes). */
|
|
189
|
+
shutdown?(): Promise<void> | void;
|
|
190
|
+
}
|
|
191
|
+
export type ChatRole = 'system' | 'user' | 'assistant' | 'tool';
|
|
192
|
+
/** Chat messages use the AI SDK's `ModelMessage` shape. */
|
|
193
|
+
export type ChatMessage = ModelMessage;
|
|
194
|
+
/**
|
|
195
|
+
* Token usage normalized from AI SDK v7 (`inputTokens` / `outputTokens` / `*TokenDetails`).
|
|
196
|
+
* `inputTokens` includes cached tokens; `outputTokens` includes reasoning tokens.
|
|
197
|
+
*/
|
|
198
|
+
export interface TokenUsage {
|
|
199
|
+
inputTokens: number;
|
|
200
|
+
outputTokens: number;
|
|
201
|
+
totalTokens: number;
|
|
202
|
+
cacheReadTokens: number;
|
|
203
|
+
cacheWriteTokens: number;
|
|
204
|
+
reasoningTokens: number;
|
|
205
|
+
/** @deprecated Alias of `inputTokens` (AI SDK v4 name). */
|
|
206
|
+
promptTokens: number;
|
|
207
|
+
/** @deprecated Alias of `outputTokens` (AI SDK v4 name). */
|
|
208
|
+
completionTokens: number;
|
|
209
|
+
}
|
|
210
|
+
export interface ToolGuardOptions {
|
|
211
|
+
guard?: ActionGuard;
|
|
212
|
+
confirmation?: ConfirmationService;
|
|
213
|
+
sessionId?: string;
|
|
214
|
+
/** Confirmation timeout for `ask` tools, in ms. */
|
|
215
|
+
timeoutMs?: number;
|
|
216
|
+
}
|
|
217
|
+
export interface GenerateTextOptions extends ModelChainCallOptions {
|
|
218
|
+
prompt?: string;
|
|
219
|
+
messages?: ModelMessage[];
|
|
220
|
+
system?: string;
|
|
221
|
+
provider?: string;
|
|
222
|
+
model?: string;
|
|
223
|
+
temperature?: number;
|
|
224
|
+
/** Maximum number of tokens to generate (AI SDK v7 `maxOutputTokens`). */
|
|
225
|
+
maxOutputTokens?: number;
|
|
226
|
+
/** @deprecated Use `maxOutputTokens`. */
|
|
227
|
+
maxTokens?: number;
|
|
228
|
+
topP?: number;
|
|
229
|
+
tools?: ToolSet;
|
|
230
|
+
/**
|
|
231
|
+
* Per-tool permissions applied by the manager. `deny` tools are dropped, `ask` tools need a
|
|
232
|
+
* human confirmation, tools not listed are `allow`.
|
|
233
|
+
*/
|
|
234
|
+
toolPermissions?: Record<string, ToolPermission>;
|
|
235
|
+
/** Maximum number of model steps in a tool loop (mapped to `stopWhen: stepCountIs(n)`). */
|
|
236
|
+
maxSteps?: number;
|
|
237
|
+
/** Custom stop condition(s) for the tool loop. Takes precedence over `maxSteps`. */
|
|
238
|
+
stopWhen?: StopCondition<ToolSet> | StopCondition<ToolSet>[];
|
|
239
|
+
/** Structured output schema; the parsed value is exposed as `output`. Works together with `tools`. */
|
|
240
|
+
schema?: z.ZodType;
|
|
241
|
+
/** Provider call retries performed by the AI SDK (SDK default applies when omitted). */
|
|
242
|
+
maxRetries?: number;
|
|
243
|
+
/** Called after every model step. Callback errors are logged and ignored. */
|
|
244
|
+
onStepFinish?: (step: StepResult<ToolSet>) => void | Promise<void>;
|
|
245
|
+
agentName?: string;
|
|
246
|
+
abortSignal?: AbortSignal;
|
|
247
|
+
metadata?: Record<string, unknown>;
|
|
248
|
+
toolGuard?: ToolGuardOptions;
|
|
249
|
+
}
|
|
250
|
+
export interface GenerateTextResult {
|
|
251
|
+
text: string;
|
|
252
|
+
usage: TokenUsage;
|
|
253
|
+
costUsd?: number;
|
|
254
|
+
finishReason: string;
|
|
255
|
+
provider: string;
|
|
256
|
+
model: string;
|
|
257
|
+
toolCalls?: unknown[];
|
|
258
|
+
toolResults?: unknown[];
|
|
259
|
+
steps?: unknown[];
|
|
260
|
+
/** Parsed structured output, present when `schema` was given. */
|
|
261
|
+
output?: unknown;
|
|
262
|
+
/** Provider response metadata (`result.response` of the AI SDK). */
|
|
263
|
+
rawResponse?: unknown;
|
|
264
|
+
durationMs: number;
|
|
265
|
+
}
|
|
266
|
+
export interface StreamTextOptions extends GenerateTextOptions {
|
|
267
|
+
/** Called for every text delta once the stream is consumed. */
|
|
268
|
+
onChunk?: (chunk: string) => void;
|
|
269
|
+
onFinish?: (result: {
|
|
270
|
+
text: string;
|
|
271
|
+
usage: TokenUsage;
|
|
272
|
+
costUsd?: number;
|
|
273
|
+
}) => void;
|
|
274
|
+
}
|
|
275
|
+
export type AiStreamPart = TextStreamPart<ToolSet>;
|
|
276
|
+
export interface StreamTextResult {
|
|
277
|
+
textStream: AsyncIterable<string>;
|
|
278
|
+
fullStream: AsyncIterable<AiStreamPart>;
|
|
279
|
+
provider: string;
|
|
280
|
+
model: string;
|
|
281
|
+
/** Resolves when the stream ends, is aborted, or fails (never rejects, never hangs forever). */
|
|
282
|
+
usage: Promise<TokenUsage>;
|
|
283
|
+
/**
|
|
284
|
+
* Parsed structured output. Resolves to `undefined` when no `schema` was given; may reject when the
|
|
285
|
+
* stream fails or is aborted, or when the output does not match the schema. With `schema`, the stream
|
|
286
|
+
* is consumed to completion in the background so this settles even if nothing else reads the stream.
|
|
287
|
+
*/
|
|
288
|
+
output: Promise<unknown>;
|
|
289
|
+
toTextStreamResponse(headers?: Record<string, string>): Response;
|
|
290
|
+
/** AI SDK UI message stream (compatible with `useChat`). */
|
|
291
|
+
toUIMessageStreamResponse(options?: Parameters<AiStreamTextResult<ToolSet, any, any>['toUIMessageStreamResponse']>[0]): Response;
|
|
292
|
+
/** @deprecated `toDataStreamResponse` was removed in AI SDK v5; alias of `toUIMessageStreamResponse`. */
|
|
293
|
+
toDataStreamResponse(headers?: Record<string, string>): Response;
|
|
294
|
+
consume(): Promise<GenerateTextResult>;
|
|
295
|
+
/** Cancels the underlying generation (e.g. when the HTTP client disconnected). */
|
|
296
|
+
abort(reason?: unknown): void;
|
|
297
|
+
rawStream: AiStreamTextResult<ToolSet, any, any>;
|
|
298
|
+
}
|
|
299
|
+
export interface GenerateObjectOptions<T> extends ModelChainCallOptions {
|
|
300
|
+
prompt?: string;
|
|
301
|
+
messages?: ModelMessage[];
|
|
302
|
+
system?: string;
|
|
303
|
+
provider?: string;
|
|
304
|
+
model?: string;
|
|
305
|
+
schema: z.ZodType<T>;
|
|
306
|
+
schemaName?: string;
|
|
307
|
+
schemaDescription?: string;
|
|
308
|
+
agentName?: string;
|
|
309
|
+
temperature?: number;
|
|
310
|
+
maxOutputTokens?: number;
|
|
311
|
+
/** @deprecated Use `maxOutputTokens`. */
|
|
312
|
+
maxTokens?: number;
|
|
313
|
+
abortSignal?: AbortSignal;
|
|
314
|
+
}
|
|
315
|
+
export interface GenerateObjectResult<T> {
|
|
316
|
+
object: T;
|
|
317
|
+
usage: TokenUsage;
|
|
318
|
+
costUsd?: number;
|
|
319
|
+
provider: string;
|
|
320
|
+
model: string;
|
|
321
|
+
durationMs: number;
|
|
322
|
+
}
|
|
323
|
+
export interface StreamAIOptions {
|
|
324
|
+
/**
|
|
325
|
+
* `sse` - legacy `event: message` frames with JSON `{type:'chunk',text}` and a `[DONE]` sentinel
|
|
326
|
+
* `ui` - AI SDK UI message stream (use with `useChat`)
|
|
327
|
+
* `text` - raw text chunks
|
|
328
|
+
*/
|
|
329
|
+
mode?: 'sse' | 'ui' | 'text';
|
|
330
|
+
event?: string;
|
|
331
|
+
onChunk?: (chunk: string) => void;
|
|
332
|
+
onFinish?: (fullText: string) => void;
|
|
333
|
+
onError?: (error: Error) => void;
|
|
334
|
+
headers?: Record<string, string>;
|
|
335
|
+
/** Interval of SSE keep-alive comments in ms. 0 disables. Default: 15000 */
|
|
336
|
+
heartbeatMs?: number;
|
|
337
|
+
/** Include `error.message` in SSE error events. Default: false (generic message). */
|
|
338
|
+
exposeErrors?: boolean;
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TokenUsage } from './types.js';
|
|
2
|
+
export declare const EMPTY_USAGE: Readonly<TokenUsage>;
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes AI SDK usage into `TokenUsage`.
|
|
5
|
+
*
|
|
6
|
+
* Reads the v7 shape (`inputTokens`, `outputTokens`, `inputTokenDetails.cacheReadTokens`,
|
|
7
|
+
* `outputTokenDetails.reasoningTokens`) and falls back to the legacy v4 names
|
|
8
|
+
* (`promptTokens`, `completionTokens`, `cachedInputTokens`, `reasoningTokens`).
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeUsage(raw: unknown): TokenUsage;
|
|
11
|
+
/** Sums usage over several steps (used when a stream is aborted before the final total exists). */
|
|
12
|
+
export declare function sumUsage(items: unknown[]): TokenUsage;
|
|
13
|
+
//# sourceMappingURL=usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,UAAU,CAS3C,CAAA;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAuBvD;AAED,mGAAmG;AACnG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAcrD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function num(value) {
|
|
2
|
+
return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : 0;
|
|
3
|
+
}
|
|
4
|
+
function obj(value) {
|
|
5
|
+
return value !== null && typeof value === 'object' ? value : {};
|
|
6
|
+
}
|
|
7
|
+
export const EMPTY_USAGE = Object.freeze({
|
|
8
|
+
inputTokens: 0,
|
|
9
|
+
outputTokens: 0,
|
|
10
|
+
totalTokens: 0,
|
|
11
|
+
cacheReadTokens: 0,
|
|
12
|
+
cacheWriteTokens: 0,
|
|
13
|
+
reasoningTokens: 0,
|
|
14
|
+
promptTokens: 0,
|
|
15
|
+
completionTokens: 0,
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Normalizes AI SDK usage into `TokenUsage`.
|
|
19
|
+
*
|
|
20
|
+
* Reads the v7 shape (`inputTokens`, `outputTokens`, `inputTokenDetails.cacheReadTokens`,
|
|
21
|
+
* `outputTokenDetails.reasoningTokens`) and falls back to the legacy v4 names
|
|
22
|
+
* (`promptTokens`, `completionTokens`, `cachedInputTokens`, `reasoningTokens`).
|
|
23
|
+
*/
|
|
24
|
+
export function normalizeUsage(raw) {
|
|
25
|
+
const u = obj(raw);
|
|
26
|
+
const inputDetails = obj(u.inputTokenDetails);
|
|
27
|
+
const outputDetails = obj(u.outputTokenDetails);
|
|
28
|
+
const inputTokens = num(u.inputTokens) || num(u.promptTokens);
|
|
29
|
+
const outputTokens = num(u.outputTokens) || num(u.completionTokens);
|
|
30
|
+
const cacheReadTokens = num(inputDetails.cacheReadTokens) || num(u.cacheReadTokens) || num(u.cachedInputTokens);
|
|
31
|
+
const cacheWriteTokens = num(inputDetails.cacheWriteTokens) || num(u.cacheWriteTokens);
|
|
32
|
+
const reasoningTokens = num(outputDetails.reasoningTokens) || num(u.reasoningTokens);
|
|
33
|
+
const totalTokens = num(u.totalTokens) || inputTokens + outputTokens;
|
|
34
|
+
return {
|
|
35
|
+
inputTokens,
|
|
36
|
+
outputTokens,
|
|
37
|
+
totalTokens,
|
|
38
|
+
cacheReadTokens,
|
|
39
|
+
cacheWriteTokens,
|
|
40
|
+
reasoningTokens,
|
|
41
|
+
promptTokens: inputTokens,
|
|
42
|
+
completionTokens: outputTokens,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Sums usage over several steps (used when a stream is aborted before the final total exists). */
|
|
46
|
+
export function sumUsage(items) {
|
|
47
|
+
const total = { ...EMPTY_USAGE };
|
|
48
|
+
for (const item of items) {
|
|
49
|
+
const u = normalizeUsage(item);
|
|
50
|
+
total.inputTokens += u.inputTokens;
|
|
51
|
+
total.outputTokens += u.outputTokens;
|
|
52
|
+
total.totalTokens += u.totalTokens;
|
|
53
|
+
total.cacheReadTokens += u.cacheReadTokens;
|
|
54
|
+
total.cacheWriteTokens += u.cacheWriteTokens;
|
|
55
|
+
total.reasoningTokens += u.reasoningTokens;
|
|
56
|
+
}
|
|
57
|
+
total.promptTokens = total.inputTokens;
|
|
58
|
+
total.completionTokens = total.outputTokens;
|
|
59
|
+
return total;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/usage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,210 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adonis-ai-kit",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Production-ready AI & Agentic workflow kit for AdonisJS 7 (Vercel AI SDK v7, multi-provider fallbacks, ACP & token budget enforcement)",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"adonisjs",
|
|
7
|
+
"adonisjs-7",
|
|
8
|
+
"ai",
|
|
9
|
+
"llm",
|
|
10
|
+
"prism",
|
|
11
|
+
"laravel-ai",
|
|
12
|
+
"models-dev",
|
|
13
|
+
"acp",
|
|
14
|
+
"agent-client-protocol",
|
|
15
|
+
"mcp",
|
|
16
|
+
"skills",
|
|
17
|
+
"agents",
|
|
18
|
+
"streaming",
|
|
19
|
+
"sse",
|
|
20
|
+
"circuit-breaker",
|
|
21
|
+
"token-budget",
|
|
22
|
+
"tool-guard",
|
|
23
|
+
"hitl",
|
|
24
|
+
"guardrails"
|
|
25
|
+
],
|
|
26
|
+
"author": "Ivan Glazyrin <glazrus97@gmail.com>",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"type": "module",
|
|
29
|
+
"main": "./dist/src/index.js",
|
|
30
|
+
"types": "./dist/src/index.d.ts",
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/src/index.d.ts",
|
|
34
|
+
"import": "./dist/src/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./guard": {
|
|
37
|
+
"types": "./dist/src/guard/index.d.ts",
|
|
38
|
+
"import": "./dist/src/guard/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./budget": {
|
|
41
|
+
"types": "./dist/src/budget/index.d.ts",
|
|
42
|
+
"import": "./dist/src/budget/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./services/main": {
|
|
45
|
+
"types": "./dist/services/main.d.ts",
|
|
46
|
+
"import": "./dist/services/main.js"
|
|
47
|
+
},
|
|
48
|
+
"./providers/ai_provider": {
|
|
49
|
+
"types": "./dist/providers/ai_provider.d.ts",
|
|
50
|
+
"import": "./dist/providers/ai_provider.js"
|
|
51
|
+
},
|
|
52
|
+
"./commands": {
|
|
53
|
+
"types": "./dist/commands/main.d.ts",
|
|
54
|
+
"import": "./dist/commands/main.js"
|
|
55
|
+
},
|
|
56
|
+
"./types": {
|
|
57
|
+
"types": "./dist/src/types.d.ts",
|
|
58
|
+
"import": "./dist/src/types.js"
|
|
59
|
+
},
|
|
60
|
+
"./catalog": {
|
|
61
|
+
"types": "./dist/src/catalog/index.d.ts",
|
|
62
|
+
"import": "./dist/src/catalog/index.js"
|
|
63
|
+
},
|
|
64
|
+
"./acp": {
|
|
65
|
+
"types": "./dist/src/acp/index.d.ts",
|
|
66
|
+
"import": "./dist/src/acp/index.js"
|
|
67
|
+
},
|
|
68
|
+
"./agents": {
|
|
69
|
+
"types": "./dist/src/agents/index.d.ts",
|
|
70
|
+
"import": "./dist/src/agents/index.js"
|
|
71
|
+
},
|
|
72
|
+
"./models": {
|
|
73
|
+
"types": "./dist/src/models/index.d.ts",
|
|
74
|
+
"import": "./dist/src/models/index.js"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"files": [
|
|
78
|
+
"dist",
|
|
79
|
+
"README.md",
|
|
80
|
+
"CHANGELOG.md",
|
|
81
|
+
"LICENSE"
|
|
82
|
+
],
|
|
83
|
+
"scripts": {
|
|
84
|
+
"build": "tsc",
|
|
85
|
+
"prepack": "npm run clean && npm run build",
|
|
86
|
+
"watch": "tsc --watch",
|
|
87
|
+
"typecheck": "tsc --noEmit -p tsconfig.test.json",
|
|
88
|
+
"clean": "node -e \"fs.rmSync('dist', { recursive: true, force: true })\"",
|
|
89
|
+
"test:regression": "node tests/regression.mjs && node tests/regression_adonis.mjs",
|
|
90
|
+
"test": "node --import=@poppinss/ts-exec bin/test.ts"
|
|
91
|
+
},
|
|
92
|
+
"repository": {
|
|
93
|
+
"type": "git",
|
|
94
|
+
"url": "git+https://github.com/IvanGlazyrin/adonis-ai-kit.git"
|
|
95
|
+
},
|
|
96
|
+
"bugs": {
|
|
97
|
+
"url": "https://github.com/IvanGlazyrin/adonis-ai-kit/issues"
|
|
98
|
+
},
|
|
99
|
+
"homepage": "https://github.com/IvanGlazyrin/adonis-ai-kit#readme",
|
|
100
|
+
"peerDependencies": {
|
|
101
|
+
"@adonisjs/core": "^7.0.0",
|
|
102
|
+
"@ai-sdk/amazon-bedrock": "*",
|
|
103
|
+
"@ai-sdk/anthropic": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
104
|
+
"@ai-sdk/azure": "*",
|
|
105
|
+
"@ai-sdk/cerebras": "*",
|
|
106
|
+
"@ai-sdk/cohere": "*",
|
|
107
|
+
"@ai-sdk/deepinfra": "*",
|
|
108
|
+
"@ai-sdk/gateway": "*",
|
|
109
|
+
"@ai-sdk/google": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
110
|
+
"@ai-sdk/google-vertex": "*",
|
|
111
|
+
"@ai-sdk/groq": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
112
|
+
"@ai-sdk/mistral": "*",
|
|
113
|
+
"@ai-sdk/openai": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
114
|
+
"@ai-sdk/openai-compatible": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
115
|
+
"@ai-sdk/perplexity": "*",
|
|
116
|
+
"@ai-sdk/togetherai": "*",
|
|
117
|
+
"@ai-sdk/vercel": "*",
|
|
118
|
+
"@ai-sdk/xai": "*",
|
|
119
|
+
"@gitlab/gitlab-ai-provider": "*",
|
|
120
|
+
"@mcpc-tech/acp-ai-provider": ">=0.1.0",
|
|
121
|
+
"@openrouter/ai-sdk-provider": "*",
|
|
122
|
+
"ai": "^7.0.0"
|
|
123
|
+
},
|
|
124
|
+
"dependencies": {
|
|
125
|
+
"yaml": "^2.7.0",
|
|
126
|
+
"zod": "^3.25.76 || ^4.1.8"
|
|
127
|
+
},
|
|
128
|
+
"devDependencies": {
|
|
129
|
+
"@adonisjs/core": "^7.4.0",
|
|
130
|
+
"@ai-sdk/anthropic": "^4.0.0",
|
|
131
|
+
"@ai-sdk/openai": "^4.0.0",
|
|
132
|
+
"@japa/assert": "^4.2.0",
|
|
133
|
+
"@japa/runner": "^5.4.0",
|
|
134
|
+
"@poppinss/ts-exec": "^1.5.1",
|
|
135
|
+
"@types/node": "^22.0.0",
|
|
136
|
+
"ai": "^7.0.0",
|
|
137
|
+
"typescript": "^5.0.0 || ^6.0.0"
|
|
138
|
+
},
|
|
139
|
+
"engines": {
|
|
140
|
+
"node": ">=22.0.0"
|
|
141
|
+
},
|
|
142
|
+
"sideEffects": [
|
|
143
|
+
"./dist/services/main.js"
|
|
144
|
+
],
|
|
145
|
+
"publishConfig": {
|
|
146
|
+
"access": "public"
|
|
147
|
+
},
|
|
148
|
+
"peerDependenciesMeta": {
|
|
149
|
+
"@ai-sdk/amazon-bedrock": {
|
|
150
|
+
"optional": true
|
|
151
|
+
},
|
|
152
|
+
"@ai-sdk/anthropic": {
|
|
153
|
+
"optional": true
|
|
154
|
+
},
|
|
155
|
+
"@ai-sdk/azure": {
|
|
156
|
+
"optional": true
|
|
157
|
+
},
|
|
158
|
+
"@ai-sdk/cerebras": {
|
|
159
|
+
"optional": true
|
|
160
|
+
},
|
|
161
|
+
"@ai-sdk/cohere": {
|
|
162
|
+
"optional": true
|
|
163
|
+
},
|
|
164
|
+
"@ai-sdk/deepinfra": {
|
|
165
|
+
"optional": true
|
|
166
|
+
},
|
|
167
|
+
"@ai-sdk/gateway": {
|
|
168
|
+
"optional": true
|
|
169
|
+
},
|
|
170
|
+
"@ai-sdk/google": {
|
|
171
|
+
"optional": true
|
|
172
|
+
},
|
|
173
|
+
"@ai-sdk/google-vertex": {
|
|
174
|
+
"optional": true
|
|
175
|
+
},
|
|
176
|
+
"@ai-sdk/groq": {
|
|
177
|
+
"optional": true
|
|
178
|
+
},
|
|
179
|
+
"@ai-sdk/mistral": {
|
|
180
|
+
"optional": true
|
|
181
|
+
},
|
|
182
|
+
"@ai-sdk/openai": {
|
|
183
|
+
"optional": true
|
|
184
|
+
},
|
|
185
|
+
"@ai-sdk/openai-compatible": {
|
|
186
|
+
"optional": true
|
|
187
|
+
},
|
|
188
|
+
"@ai-sdk/perplexity": {
|
|
189
|
+
"optional": true
|
|
190
|
+
},
|
|
191
|
+
"@ai-sdk/togetherai": {
|
|
192
|
+
"optional": true
|
|
193
|
+
},
|
|
194
|
+
"@ai-sdk/vercel": {
|
|
195
|
+
"optional": true
|
|
196
|
+
},
|
|
197
|
+
"@ai-sdk/xai": {
|
|
198
|
+
"optional": true
|
|
199
|
+
},
|
|
200
|
+
"@gitlab/gitlab-ai-provider": {
|
|
201
|
+
"optional": true
|
|
202
|
+
},
|
|
203
|
+
"@mcpc-tech/acp-ai-provider": {
|
|
204
|
+
"optional": true
|
|
205
|
+
},
|
|
206
|
+
"@openrouter/ai-sdk-provider": {
|
|
207
|
+
"optional": true
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|