ai.matey.utils 0.2.2 → 0.4.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/cjs/embeddings.js +153 -0
  3. package/dist/cjs/embeddings.js.map +1 -0
  4. package/dist/cjs/index.js +9 -0
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/model-registry-data.js +725 -0
  7. package/dist/cjs/model-registry-data.js.map +1 -0
  8. package/dist/cjs/model-registry.js +175 -0
  9. package/dist/cjs/model-registry.js.map +1 -0
  10. package/dist/cjs/streaming.js +61 -1
  11. package/dist/cjs/streaming.js.map +1 -1
  12. package/dist/cjs/structured-output.js +17 -5
  13. package/dist/cjs/structured-output.js.map +1 -1
  14. package/dist/cjs/tools.js +218 -0
  15. package/dist/cjs/tools.js.map +1 -0
  16. package/dist/esm/embeddings.js +145 -0
  17. package/dist/esm/embeddings.js.map +1 -0
  18. package/dist/esm/index.js +7 -0
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/model-registry-data.js +722 -0
  21. package/dist/esm/model-registry-data.js.map +1 -0
  22. package/dist/esm/model-registry.js +162 -0
  23. package/dist/esm/model-registry.js.map +1 -0
  24. package/dist/esm/streaming.js +61 -1
  25. package/dist/esm/streaming.js.map +1 -1
  26. package/dist/esm/structured-output.js +17 -5
  27. package/dist/esm/structured-output.js.map +1 -1
  28. package/dist/esm/tools.js +211 -0
  29. package/dist/esm/tools.js.map +1 -0
  30. package/dist/types/embeddings.d.ts +80 -0
  31. package/dist/types/embeddings.d.ts.map +1 -0
  32. package/dist/types/index.d.ts +4 -0
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/types/model-registry-data.d.ts +23 -0
  35. package/dist/types/model-registry-data.d.ts.map +1 -0
  36. package/dist/types/model-registry.d.ts +80 -0
  37. package/dist/types/model-registry.d.ts.map +1 -0
  38. package/dist/types/streaming.d.ts +18 -0
  39. package/dist/types/streaming.d.ts.map +1 -1
  40. package/dist/types/structured-output.d.ts.map +1 -1
  41. package/dist/types/tools.d.ts +70 -0
  42. package/dist/types/tools.d.ts.map +1 -0
  43. package/package.json +1 -1
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Tool-Calling Utilities
3
+ *
4
+ * Helpers for working with tool calls in IR responses: extraction, result
5
+ * construction, zero-dependency argument validation against the IR
6
+ * JSONSchema subset, and streamed tool-call assembly.
7
+ *
8
+ * @module
9
+ */
10
+ // ============================================================================
11
+ // Extraction
12
+ // ============================================================================
13
+ /**
14
+ * Extract tool calls from an IR message or response.
15
+ */
16
+ export function extractToolCalls(source) {
17
+ const message = 'message' in source ? source.message : source;
18
+ if (typeof message.content === 'string') {
19
+ return [];
20
+ }
21
+ return message.content.filter((block) => block.type === 'tool_use');
22
+ }
23
+ /**
24
+ * Whether a response requests tool execution.
25
+ */
26
+ export function hasToolCalls(response) {
27
+ return response.finishReason === 'tool_calls' || extractToolCalls(response).length > 0;
28
+ }
29
+ /**
30
+ * Build the `role: 'tool'` message carrying tool results back to the model.
31
+ *
32
+ * Non-string results are JSON-stringified.
33
+ */
34
+ export function createToolResultMessage(results) {
35
+ const list = Array.isArray(results) ? results : [results];
36
+ return {
37
+ role: 'tool',
38
+ content: list.map((result) => ({
39
+ type: 'tool_result',
40
+ toolUseId: result.toolCallId,
41
+ content: typeof result.result === 'string' ? result.result : JSON.stringify(result.result ?? null),
42
+ isError: result.isError,
43
+ })),
44
+ };
45
+ }
46
+ /**
47
+ * Validate tool-call arguments against the tool's JSON Schema.
48
+ *
49
+ * Zero-dependency validator for the IR `JSONSchema` subset (type, enum,
50
+ * const, properties, required, items, min/max, pattern, length bounds) —
51
+ * deliberately not a full draft-2020 implementation. Use Zod via
52
+ * `generateObject` when full-fidelity validation matters.
53
+ */
54
+ export function validateToolArgs(tool, input) {
55
+ const errors = [];
56
+ validateAgainstSchema(input, tool.parameters, '$', errors);
57
+ if (errors.length > 0) {
58
+ return { valid: false, errors };
59
+ }
60
+ return {
61
+ valid: true,
62
+ value: input !== null && typeof input === 'object' && !Array.isArray(input)
63
+ ? input
64
+ : {},
65
+ };
66
+ }
67
+ function validateAgainstSchema(value, schema, path, errors) {
68
+ const s = schema;
69
+ // const / enum
70
+ if ('const' in s && value !== s.const) {
71
+ errors.push({ path, message: `expected constant ${JSON.stringify(s.const)}` });
72
+ return;
73
+ }
74
+ if (Array.isArray(s.enum) && !s.enum.some((candidate) => deepEqual(candidate, value))) {
75
+ errors.push({ path, message: `expected one of ${JSON.stringify(s.enum)}` });
76
+ return;
77
+ }
78
+ const type = s.type;
79
+ switch (type) {
80
+ case 'object': {
81
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
82
+ errors.push({ path, message: 'expected object' });
83
+ return;
84
+ }
85
+ const record = value;
86
+ const properties = (s.properties ?? {});
87
+ const required = (s.required ?? []);
88
+ for (const key of required) {
89
+ if (!(key in record)) {
90
+ errors.push({ path: `${path}.${key}`, message: 'required property missing' });
91
+ }
92
+ }
93
+ for (const [key, propertySchema] of Object.entries(properties)) {
94
+ if (key in record) {
95
+ validateAgainstSchema(record[key], propertySchema, `${path}.${key}`, errors);
96
+ }
97
+ }
98
+ if (s.additionalProperties === false) {
99
+ for (const key of Object.keys(record)) {
100
+ if (!(key in properties)) {
101
+ errors.push({ path: `${path}.${key}`, message: 'unexpected property' });
102
+ }
103
+ }
104
+ }
105
+ break;
106
+ }
107
+ case 'array': {
108
+ if (!Array.isArray(value)) {
109
+ errors.push({ path, message: 'expected array' });
110
+ return;
111
+ }
112
+ if (typeof s.minItems === 'number' && value.length < s.minItems) {
113
+ errors.push({ path, message: `expected at least ${s.minItems} items` });
114
+ }
115
+ if (typeof s.maxItems === 'number' && value.length > s.maxItems) {
116
+ errors.push({ path, message: `expected at most ${s.maxItems} items` });
117
+ }
118
+ if (s.items) {
119
+ value.forEach((item, index) => validateAgainstSchema(item, s.items, `${path}[${index}]`, errors));
120
+ }
121
+ break;
122
+ }
123
+ case 'string': {
124
+ if (typeof value !== 'string') {
125
+ errors.push({ path, message: 'expected string' });
126
+ return;
127
+ }
128
+ if (typeof s.minLength === 'number' && value.length < s.minLength) {
129
+ errors.push({ path, message: `expected length >= ${s.minLength}` });
130
+ }
131
+ if (typeof s.maxLength === 'number' && value.length > s.maxLength) {
132
+ errors.push({ path, message: `expected length <= ${s.maxLength}` });
133
+ }
134
+ if (typeof s.pattern === 'string' && !new RegExp(s.pattern).test(value)) {
135
+ errors.push({ path, message: `expected match for /${s.pattern}/` });
136
+ }
137
+ break;
138
+ }
139
+ case 'number':
140
+ case 'integer': {
141
+ if (typeof value !== 'number' || Number.isNaN(value)) {
142
+ errors.push({ path, message: `expected ${type}` });
143
+ return;
144
+ }
145
+ if (type === 'integer' && !Number.isInteger(value)) {
146
+ errors.push({ path, message: 'expected integer' });
147
+ }
148
+ if (typeof s.minimum === 'number' && value < s.minimum) {
149
+ errors.push({ path, message: `expected >= ${s.minimum}` });
150
+ }
151
+ if (typeof s.maximum === 'number' && value > s.maximum) {
152
+ errors.push({ path, message: `expected <= ${s.maximum}` });
153
+ }
154
+ break;
155
+ }
156
+ case 'boolean':
157
+ if (typeof value !== 'boolean') {
158
+ errors.push({ path, message: 'expected boolean' });
159
+ }
160
+ break;
161
+ case 'null':
162
+ if (value !== null) {
163
+ errors.push({ path, message: 'expected null' });
164
+ }
165
+ break;
166
+ default:
167
+ // No/unknown type constraint: accept
168
+ break;
169
+ }
170
+ }
171
+ function deepEqual(a, b) {
172
+ if (a === b) {
173
+ return true;
174
+ }
175
+ if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) {
176
+ return false;
177
+ }
178
+ return JSON.stringify(a) === JSON.stringify(b);
179
+ }
180
+ // ============================================================================
181
+ // Stream Assembly
182
+ // ============================================================================
183
+ /**
184
+ * Consume an IR stream and assemble its tool calls and final response.
185
+ *
186
+ * Convenience for callers that stream for latency but want complete tool
187
+ * calls at the end: collects `tool_use` deltas and returns the `done`
188
+ * chunk's assembled message/finish reason.
189
+ */
190
+ export async function collectToolCallsFromStream(stream) {
191
+ let response = null;
192
+ for await (const chunk of stream) {
193
+ if (chunk.type === 'done') {
194
+ response = {
195
+ message: chunk.message ?? { role: 'assistant', content: '' },
196
+ finishReason: chunk.finishReason,
197
+ usage: chunk.usage,
198
+ metadata: {
199
+ requestId: 'stream',
200
+ timestamp: Date.now(),
201
+ provenance: {},
202
+ },
203
+ };
204
+ }
205
+ }
206
+ return {
207
+ toolCalls: response ? extractToolCalls(response) : [],
208
+ response,
209
+ };
210
+ }
211
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Embedding Utilities
3
+ *
4
+ * Shared helpers for embedding support: batch chunking, dimension
5
+ * normalization, similarity, capability detection, and OpenAI wire-format
6
+ * conversion (used by the HTTP layer's /v1/embeddings route).
7
+ *
8
+ * @module
9
+ */
10
+ import type { BackendAdapter, IREmbedRequest, IREmbedResponse } from 'ai.matey.types';
11
+ /**
12
+ * Type guard: does this backend implement embeddings?
13
+ */
14
+ export declare function supportsEmbeddings(adapter: BackendAdapter): adapter is BackendAdapter & Required<Pick<BackendAdapter, 'embed'>>;
15
+ /**
16
+ * Split embedding inputs into provider-sized batches.
17
+ *
18
+ * @param inputs - Input strings
19
+ * @param options - maxBatchSize: max inputs per request; maxTokensPerBatch:
20
+ * optional token budget per batch using estimateTokens (default ~4 chars
21
+ * per token)
22
+ * @returns Batches in original order
23
+ */
24
+ export declare function chunkEmbedInputs(inputs: readonly string[], options: {
25
+ maxBatchSize: number;
26
+ maxTokensPerBatch?: number;
27
+ estimateTokens?: (text: string) => number;
28
+ }): string[][];
29
+ /**
30
+ * Normalize a vector to a target dimensionality.
31
+ *
32
+ * - `truncate` (default): drop trailing components and re-normalize to unit
33
+ * length (valid for Matryoshka-trained models; approximate otherwise)
34
+ * - `pad`: zero-pad to the target length
35
+ *
36
+ * @param vector - Source vector
37
+ * @param dimensions - Target dimensionality
38
+ * @param strategy - 'truncate' | 'pad'
39
+ */
40
+ export declare function normalizeDimensions(vector: readonly number[], dimensions: number, strategy?: 'truncate' | 'pad'): number[];
41
+ /**
42
+ * Cosine similarity between two vectors (also the seed primitive for
43
+ * semantic caching).
44
+ */
45
+ export declare function cosineSimilarity(a: readonly number[], b: readonly number[]): number;
46
+ /**
47
+ * OpenAI /v1/embeddings request shape.
48
+ */
49
+ export interface OpenAIEmbedWireRequest {
50
+ model: string;
51
+ input: string | string[];
52
+ dimensions?: number;
53
+ encoding_format?: 'float' | 'base64';
54
+ user?: string;
55
+ }
56
+ /**
57
+ * OpenAI /v1/embeddings response shape.
58
+ */
59
+ export interface OpenAIEmbedWireResponse {
60
+ object: 'list';
61
+ data: Array<{
62
+ object: 'embedding';
63
+ index: number;
64
+ embedding: number[];
65
+ }>;
66
+ model: string;
67
+ usage: {
68
+ prompt_tokens: number;
69
+ total_tokens: number;
70
+ };
71
+ }
72
+ /**
73
+ * Convert an OpenAI-format embeddings request body to IR.
74
+ */
75
+ export declare function openaiEmbedRequestToIR(body: OpenAIEmbedWireRequest): IREmbedRequest;
76
+ /**
77
+ * Convert an IR embedding response to the OpenAI wire format.
78
+ */
79
+ export declare function irToOpenAIEmbedResponse(response: IREmbedResponse): OpenAIEmbedWireResponse;
80
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,gBAAgB,CAAC;AAMlG;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,GACtB,OAAO,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAKrE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,GACA,MAAM,EAAE,EAAE,CA+BZ;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,UAAU,GAAG,KAAkB,GACxC,MAAM,EAAE,CAiBV;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAmBnF;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC;QACV,MAAM,EAAE,WAAW,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,GAAG,cAAc,CAcnF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,uBAAuB,CAc1F"}
@@ -13,5 +13,9 @@ export * from './streaming-modes.js';
13
13
  export * from './warnings.js';
14
14
  export * from './conversation-history.js';
15
15
  export * from './model-cache.js';
16
+ export * from './embeddings.js';
17
+ export * from './tools.js';
18
+ export * from './model-registry.js';
19
+ export { MODEL_REGISTRY_SEED } from './model-registry-data.js';
16
20
  export * from './structured-output.js';
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,eAAe,CAAC;AAG9B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,eAAe,CAAC;AAG9B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Model Registry Seed Data
3
+ *
4
+ * The built-in model database consumed by the model registry
5
+ * (see ./model-registry.ts). Pricing is USD per 1M tokens.
6
+ *
7
+ * UPDATING THIS FILE
8
+ * - This file is intentionally the only place in the monorepo where model
9
+ * metadata is hardcoded. Everything else (pricing helpers, capability
10
+ * inference, cost tracking, token counting) derives from it.
11
+ * - Add new models at the top of their provider section; mark superseded
12
+ * models `deprecated: true` instead of deleting them (cost tracking for
13
+ * historical usage still needs their prices).
14
+ * - Users can add or correct models at runtime with `registerModels()`,
15
+ * so an out-of-date seed never blocks anyone.
16
+ *
17
+ * Data last refreshed: 2026-07-04 (verified against provider pricing pages).
18
+ *
19
+ * @module
20
+ */
21
+ import type { ModelRegistryEntry } from 'ai.matey.types';
22
+ export declare const MODEL_REGISTRY_SEED: readonly ModelRegistryEntry[];
23
+ //# sourceMappingURL=model-registry-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry-data.d.ts","sourceRoot":"","sources":["../../src/model-registry-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,EAAE,SAAS,kBAAkB,EAisB5D,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Model Registry
3
+ *
4
+ * Single source of truth for model metadata (pricing, context windows,
5
+ * capabilities, quality/latency heuristics) across the monorepo. Seeded
6
+ * from ./model-registry-data.ts and extensible at runtime, so consumers
7
+ * are never blocked by stale built-in data:
8
+ *
9
+ * ```typescript
10
+ * import { registerModels } from 'ai.matey.utils';
11
+ *
12
+ * registerModels([
13
+ * {
14
+ * id: 'gpt-6-preview',
15
+ * provider: 'openai',
16
+ * family: 'gpt-6',
17
+ * pricing: { inputPer1M: 2.0, outputPer1M: 16.0 },
18
+ * },
19
+ * ]);
20
+ * ```
21
+ *
22
+ * Lookup resolves exact ids first, then aliases, then falls back to the
23
+ * longest matching id/alias prefix — so an unknown dated snapshot like
24
+ * `claude-sonnet-4-5-20991231` still resolves to the `claude-sonnet-4-5`
25
+ * family entry instead of returning nothing.
26
+ *
27
+ * @module
28
+ */
29
+ import type { ModelRegistryEntry, ModelPricingInfo } from 'ai.matey.types';
30
+ /**
31
+ * Register (or replace) model entries at runtime.
32
+ *
33
+ * User entries take precedence over the built-in seed for the same id.
34
+ */
35
+ export declare function registerModels(entries: readonly ModelRegistryEntry[]): void;
36
+ /**
37
+ * Look up a model entry by id, alias, or longest-prefix fallback.
38
+ *
39
+ * @param modelId - Model identifier (canonical id, alias, or unknown variant)
40
+ * @returns The best matching entry, or null when nothing plausibly matches
41
+ */
42
+ export declare function getModelEntry(modelId: string): ModelRegistryEntry | null;
43
+ /**
44
+ * Get pricing for a model in USD per 1M tokens (overrides applied).
45
+ */
46
+ export declare function getModelPricingInfo(modelId: string): ModelPricingInfo | null;
47
+ /**
48
+ * Override pricing for a model (USD per 1M tokens).
49
+ */
50
+ export declare function overrideModelPricing(modelId: string, pricing: ModelPricingInfo): void;
51
+ /**
52
+ * Remove a single pricing override.
53
+ */
54
+ export declare function clearModelPricingOverride(modelId: string): void;
55
+ /**
56
+ * Remove all pricing overrides.
57
+ */
58
+ export declare function clearModelPricingOverrides(): void;
59
+ /**
60
+ * Get a model's maximum input context window in tokens.
61
+ */
62
+ export declare function getModelContextWindow(modelId: string): number | null;
63
+ /**
64
+ * All registry entries (seed + user registrations).
65
+ */
66
+ export declare function getRegisteredModels(): ModelRegistryEntry[];
67
+ /**
68
+ * Entries for a given provider key (e.g. 'openai').
69
+ */
70
+ export declare function getModelsByProvider(provider: string): ModelRegistryEntry[];
71
+ /**
72
+ * Entries for a given model family (e.g. 'gpt-5', 'claude-4').
73
+ */
74
+ export declare function getModelEntriesByFamily(family: string): ModelRegistryEntry[];
75
+ /**
76
+ * Reset the registry to its built-in seed (clears user registrations and
77
+ * pricing overrides). Primarily for test isolation.
78
+ */
79
+ export declare function resetModelRegistry(): void;
80
+ //# sourceMappingURL=model-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0C3E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAgCxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAM5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAE1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAE5E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
@@ -20,6 +20,17 @@
20
20
  * @module streaming
21
21
  */
22
22
  import type { IRChatStream, IRStreamChunk, StreamContentChunk, StreamDoneChunk, StreamErrorChunk, IRMessage, IRChatResponse, IRMetadata, IRUsage, FinishReason } from 'ai.matey.types';
23
+ /**
24
+ * A tool call being assembled from streamed deltas.
25
+ */
26
+ export interface AccumulatedToolCall {
27
+ id: string;
28
+ name: string;
29
+ /** Concatenated raw JSON argument fragments. */
30
+ args: string;
31
+ /** Zero-based position of the tool call within the message. */
32
+ index: number;
33
+ }
23
34
  /**
24
35
  * Accumulated stream state.
25
36
  */
@@ -28,6 +39,8 @@ export interface StreamAccumulator {
28
39
  role: 'assistant';
29
40
  sequence: number;
30
41
  metadata?: Partial<IRMetadata>;
42
+ /** Tool calls assembled from tool_use chunks, keyed by tool-call id. */
43
+ toolCalls?: Map<string, AccumulatedToolCall>;
31
44
  }
32
45
  /**
33
46
  * Create a new stream accumulator.
@@ -46,6 +59,11 @@ export declare function accumulateChunk(accumulator: StreamAccumulator, chunk: I
46
59
  /**
47
60
  * Convert accumulated state to IR message.
48
61
  *
62
+ * Returns plain string content when no tool calls were streamed (backward
63
+ * compatible); otherwise structured content blocks: optional leading text
64
+ * followed by one tool_use block per call in index order. Tool argument
65
+ * fragments are parsed as JSON, degrading to `{}` when malformed.
66
+ *
49
67
  * @param accumulator Stream accumulator
50
68
  * @returns IR message
51
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/structured-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/structured-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Tool-Calling Utilities
3
+ *
4
+ * Helpers for working with tool calls in IR responses: extraction, result
5
+ * construction, zero-dependency argument validation against the IR
6
+ * JSONSchema subset, and streamed tool-call assembly.
7
+ *
8
+ * @module
9
+ */
10
+ import type { IRChatResponse, IRChatStream, IRMessage, IRTool, ToolUseContent } from 'ai.matey.types';
11
+ /**
12
+ * Extract tool calls from an IR message or response.
13
+ */
14
+ export declare function extractToolCalls(source: IRMessage | IRChatResponse): ToolUseContent[];
15
+ /**
16
+ * Whether a response requests tool execution.
17
+ */
18
+ export declare function hasToolCalls(response: IRChatResponse): boolean;
19
+ /**
20
+ * A tool execution result to feed back to the model.
21
+ */
22
+ export interface ToolCallResult {
23
+ readonly toolCallId: string;
24
+ readonly result: unknown;
25
+ readonly isError?: boolean;
26
+ }
27
+ /**
28
+ * Build the `role: 'tool'` message carrying tool results back to the model.
29
+ *
30
+ * Non-string results are JSON-stringified.
31
+ */
32
+ export declare function createToolResultMessage(results: ToolCallResult | readonly ToolCallResult[]): IRMessage;
33
+ /**
34
+ * A single validation failure.
35
+ */
36
+ export interface ToolArgValidationError {
37
+ readonly path: string;
38
+ readonly message: string;
39
+ }
40
+ /**
41
+ * Validation outcome for tool arguments.
42
+ */
43
+ export type ToolArgValidationResult = {
44
+ readonly valid: true;
45
+ readonly value: Record<string, unknown>;
46
+ } | {
47
+ readonly valid: false;
48
+ readonly errors: readonly ToolArgValidationError[];
49
+ };
50
+ /**
51
+ * Validate tool-call arguments against the tool's JSON Schema.
52
+ *
53
+ * Zero-dependency validator for the IR `JSONSchema` subset (type, enum,
54
+ * const, properties, required, items, min/max, pattern, length bounds) —
55
+ * deliberately not a full draft-2020 implementation. Use Zod via
56
+ * `generateObject` when full-fidelity validation matters.
57
+ */
58
+ export declare function validateToolArgs(tool: IRTool, input: unknown): ToolArgValidationResult;
59
+ /**
60
+ * Consume an IR stream and assemble its tool calls and final response.
61
+ *
62
+ * Convenience for callers that stream for latency but want complete tool
63
+ * calls at the end: collects `tool_use` deltas and returns the `done`
64
+ * chunk's assembled message/finish reason.
65
+ */
66
+ export declare function collectToolCallsFromStream(stream: IRChatStream): Promise<{
67
+ toolCalls: ToolUseContent[];
68
+ response: IRChatResponse | null;
69
+ }>;
70
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,SAAS,EACT,MAAM,EAEN,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,EAAE,CAMrF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAE9D;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAClD,SAAS,CAYX;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,CAAC;AAElF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CActF;AAyID;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAC9E,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC,CAsBD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai.matey.utils",
3
- "version": "0.2.2",
3
+ "version": "0.4.0",
4
4
  "description": "Utility functions for AI Matey - Universal AI Adapter System",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",