@odla-ai/ai 0.3.0 → 0.3.2
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 +11 -2
- package/dist/{anthropic-2NPMHJZT.js → anthropic-THZJJEGB.js} +3 -3
- package/dist/{chunk-OX4TA4ZH.js → chunk-6YJM5YZG.js} +2 -2
- package/dist/{chunk-PXXCN2EU.js → chunk-XVU2W4TU.js} +6 -2
- package/dist/chunk-XVU2W4TU.js.map +1 -0
- package/dist/{google-3XV2VWVB.js → google-SXQOKV2S.js} +3 -3
- package/dist/index.cjs +12 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/{openai-NTQCF577.js → openai-3XRICNAW.js} +3 -3
- package/llms.txt +5 -0
- package/package.json +1 -1
- package/dist/chunk-PXXCN2EU.js.map +0 -1
- /package/dist/{anthropic-2NPMHJZT.js.map → anthropic-THZJJEGB.js.map} +0 -0
- /package/dist/{chunk-OX4TA4ZH.js.map → chunk-6YJM5YZG.js.map} +0 -0
- /package/dist/{google-3XV2VWVB.js.map → google-SXQOKV2S.js.map} +0 -0
- /package/dist/{openai-NTQCF577.js.map → openai-3XRICNAW.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -179,10 +179,14 @@ declare class OdlaAIError extends Error {
|
|
|
179
179
|
readonly code: OracleErrorType;
|
|
180
180
|
readonly providerStatus?: number;
|
|
181
181
|
readonly retryAfter?: number;
|
|
182
|
+
/** Sanitized provider usage when a response was received before a later
|
|
183
|
+
* validation/tool-shape failure. Omitted when usage is genuinely unknown. */
|
|
184
|
+
readonly usage?: OracleUsage;
|
|
182
185
|
constructor(code: OracleErrorType, message: string, opts?: {
|
|
183
186
|
providerStatus?: number;
|
|
184
187
|
retryAfter?: number;
|
|
185
188
|
cause?: unknown;
|
|
189
|
+
usage?: OracleUsage;
|
|
186
190
|
});
|
|
187
191
|
toShape(): OracleErrorShape;
|
|
188
192
|
}
|
|
@@ -233,6 +237,7 @@ declare class ToolInputError extends OdlaAIError {
|
|
|
233
237
|
constructor(message: string, opts?: {
|
|
234
238
|
tool?: string;
|
|
235
239
|
cause?: unknown;
|
|
240
|
+
usage?: OracleUsage;
|
|
236
241
|
});
|
|
237
242
|
}
|
|
238
243
|
/** The caller cancelled a request. This is not an upstream failure and should
|
|
@@ -254,6 +259,7 @@ declare class ProviderError extends OdlaAIError {
|
|
|
254
259
|
constructor(message: string, opts?: {
|
|
255
260
|
providerStatus?: number;
|
|
256
261
|
cause?: unknown;
|
|
262
|
+
usage?: OracleUsage;
|
|
257
263
|
});
|
|
258
264
|
}
|
|
259
265
|
|
package/dist/index.d.ts
CHANGED
|
@@ -179,10 +179,14 @@ declare class OdlaAIError extends Error {
|
|
|
179
179
|
readonly code: OracleErrorType;
|
|
180
180
|
readonly providerStatus?: number;
|
|
181
181
|
readonly retryAfter?: number;
|
|
182
|
+
/** Sanitized provider usage when a response was received before a later
|
|
183
|
+
* validation/tool-shape failure. Omitted when usage is genuinely unknown. */
|
|
184
|
+
readonly usage?: OracleUsage;
|
|
182
185
|
constructor(code: OracleErrorType, message: string, opts?: {
|
|
183
186
|
providerStatus?: number;
|
|
184
187
|
retryAfter?: number;
|
|
185
188
|
cause?: unknown;
|
|
189
|
+
usage?: OracleUsage;
|
|
186
190
|
});
|
|
187
191
|
toShape(): OracleErrorShape;
|
|
188
192
|
}
|
|
@@ -233,6 +237,7 @@ declare class ToolInputError extends OdlaAIError {
|
|
|
233
237
|
constructor(message: string, opts?: {
|
|
234
238
|
tool?: string;
|
|
235
239
|
cause?: unknown;
|
|
240
|
+
usage?: OracleUsage;
|
|
236
241
|
});
|
|
237
242
|
}
|
|
238
243
|
/** The caller cancelled a request. This is not an upstream failure and should
|
|
@@ -254,6 +259,7 @@ declare class ProviderError extends OdlaAIError {
|
|
|
254
259
|
constructor(message: string, opts?: {
|
|
255
260
|
providerStatus?: number;
|
|
256
261
|
cause?: unknown;
|
|
262
|
+
usage?: OracleUsage;
|
|
257
263
|
});
|
|
258
264
|
}
|
|
259
265
|
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
normalizeError,
|
|
16
16
|
signalWithDeadline,
|
|
17
17
|
throwIfAborted
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XVU2W4TU.js";
|
|
19
19
|
|
|
20
20
|
// src/shape/helpers.ts
|
|
21
21
|
function isTextBlock(b) {
|
|
@@ -658,17 +658,17 @@ async function createProvider(id, apiKey) {
|
|
|
658
658
|
let provider;
|
|
659
659
|
switch (id) {
|
|
660
660
|
case "anthropic": {
|
|
661
|
-
const { AnthropicProvider } = await import("./anthropic-
|
|
661
|
+
const { AnthropicProvider } = await import("./anthropic-THZJJEGB.js");
|
|
662
662
|
provider = new AnthropicProvider(apiKey);
|
|
663
663
|
break;
|
|
664
664
|
}
|
|
665
665
|
case "openai": {
|
|
666
|
-
const { OpenAIProvider } = await import("./openai-
|
|
666
|
+
const { OpenAIProvider } = await import("./openai-3XRICNAW.js");
|
|
667
667
|
provider = new OpenAIProvider(apiKey);
|
|
668
668
|
break;
|
|
669
669
|
}
|
|
670
670
|
case "google": {
|
|
671
|
-
const { GoogleProvider } = await import("./google-
|
|
671
|
+
const { GoogleProvider } = await import("./google-SXQOKV2S.js");
|
|
672
672
|
provider = new GoogleProvider(apiKey);
|
|
673
673
|
break;
|
|
674
674
|
}
|
|
@@ -764,12 +764,12 @@ function init(opts = {}) {
|
|
|
764
764
|
const res = await provider.create(spec, req);
|
|
765
765
|
const block = res.content.find((b) => b.type === "tool_use" && b.name === c.tool.name);
|
|
766
766
|
if (!block || block.type !== "tool_use") {
|
|
767
|
-
throw new ProviderError(`Model "${model}" did not return the forced tool call "${c.tool.name}"
|
|
767
|
+
throw new ProviderError(`Model "${model}" did not return the forced tool call "${c.tool.name}".`, { usage: res.usage });
|
|
768
768
|
}
|
|
769
769
|
const validation = validateJsonSchema(c.tool.parameters, block.input);
|
|
770
770
|
if (!validation.valid) {
|
|
771
771
|
const detail = validation.issues.slice(0, 5).map((i) => `${i.path} ${i.message}`).join("; ");
|
|
772
|
-
throw new ToolInputError(`Tool "${c.tool.name}" returned invalid input: ${detail}`, { tool: c.tool.name });
|
|
772
|
+
throw new ToolInputError(`Tool "${c.tool.name}" returned invalid input: ${detail}`, { tool: c.tool.name, usage: res.usage });
|
|
773
773
|
}
|
|
774
774
|
return { value: block.input, usage: res.usage };
|
|
775
775
|
};
|
|
@@ -943,6 +943,11 @@ Every error is an OdlaAIError subclass with a stable \`code\` \u2014 branch on e
|
|
|
943
943
|
config, auth, rate_limit, capability_unsupported, context_window, invalid_request,
|
|
944
944
|
tool_input_invalid, cancelled, deadline_exceeded, provider_error.
|
|
945
945
|
|
|
946
|
+
OdlaAIError.usage is an optional frozen token-usage record. It exists only when
|
|
947
|
+
the provider returned a response before a later forced-tool/schema validation
|
|
948
|
+
failure, and may be absent for every earlier failure. It is intentionally not
|
|
949
|
+
included in toShape() or streaming OracleErrorShape.
|
|
950
|
+
|
|
946
951
|
## Models
|
|
947
952
|
|
|
948
953
|
${models}
|