@mastra/core 0.16.2 → 0.16.3-alpha.1
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 +44 -0
- package/dist/agent/agent.d.ts +316 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.types.d.ts +19 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +11 -11
- package/dist/agent/index.d.ts +4 -313
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/agent/types.d.ts +8 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/base.d.ts.map +1 -1
- package/dist/ai-tracing/context.d.ts.map +1 -1
- package/dist/ai-tracing/default.d.ts +1 -2
- package/dist/ai-tracing/default.d.ts.map +1 -1
- package/dist/ai-tracing/exporters/cloud.d.ts +32 -0
- package/dist/ai-tracing/exporters/cloud.d.ts.map +1 -0
- package/dist/ai-tracing/exporters/default.d.ts.map +1 -1
- package/dist/ai-tracing/exporters/index.d.ts +2 -0
- package/dist/ai-tracing/exporters/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +36 -40
- package/dist/ai-tracing/index.js +1 -1
- package/dist/ai-tracing/no-op.d.ts +1 -0
- package/dist/ai-tracing/no-op.d.ts.map +1 -1
- package/dist/ai-tracing/registry.d.ts.map +1 -1
- package/dist/ai-tracing/types.d.ts +39 -14
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/ai-tracing/utils.d.ts +29 -19
- package/dist/ai-tracing/utils.d.ts.map +1 -1
- package/dist/{chunk-JLVFFZT7.cjs → chunk-2LEMTQEN.cjs} +4 -4
- package/dist/{chunk-JLVFFZT7.cjs.map → chunk-2LEMTQEN.cjs.map} +1 -1
- package/dist/{chunk-6RVOPJVP.cjs → chunk-37GX66ZQ.cjs} +7 -7
- package/dist/{chunk-6RVOPJVP.cjs.map → chunk-37GX66ZQ.cjs.map} +1 -1
- package/dist/{chunk-IMDDMIVR.cjs → chunk-3CYEVZGC.cjs} +6 -6
- package/dist/{chunk-IMDDMIVR.cjs.map → chunk-3CYEVZGC.cjs.map} +1 -1
- package/dist/{chunk-P67M4R6G.js → chunk-46ZMVRXN.js} +5 -5
- package/dist/{chunk-P67M4R6G.js.map → chunk-46ZMVRXN.js.map} +1 -1
- package/dist/chunk-4WQYXT2I.cjs +12 -0
- package/dist/chunk-4WQYXT2I.cjs.map +1 -0
- package/dist/{chunk-YYRE76UM.js → chunk-6ILOFPTU.js} +4 -4
- package/dist/{chunk-YYRE76UM.js.map → chunk-6ILOFPTU.js.map} +1 -1
- package/dist/{chunk-YI3AIJJL.js → chunk-7ARB2XCY.js} +4 -4
- package/dist/chunk-7ARB2XCY.js.map +1 -0
- package/dist/{chunk-SJO2HEVU.cjs → chunk-AV5QBG6P.cjs} +185 -125
- package/dist/chunk-AV5QBG6P.cjs.map +1 -0
- package/dist/{chunk-RVNDGKE5.js → chunk-BE6HGZV7.js} +3 -3
- package/dist/{chunk-RVNDGKE5.js.map → chunk-BE6HGZV7.js.map} +1 -1
- package/dist/chunk-CM4UEIAB.cjs +808 -0
- package/dist/chunk-CM4UEIAB.cjs.map +1 -0
- package/dist/{chunk-DUABZASJ.js → chunk-DWGGSV3L.js} +4 -4
- package/dist/{chunk-DUABZASJ.js.map → chunk-DWGGSV3L.js.map} +1 -1
- package/dist/chunk-HHRWDBFK.js +737 -0
- package/dist/chunk-HHRWDBFK.js.map +1 -0
- package/dist/{chunk-D3UG2YLU.cjs → chunk-I77GWNQI.cjs} +5 -5
- package/dist/chunk-I77GWNQI.cjs.map +1 -0
- package/dist/chunk-PJKCPRYF.js +3 -0
- package/dist/chunk-PJKCPRYF.js.map +1 -0
- package/dist/{chunk-ZIDWSQFD.cjs → chunk-PPMRSBCA.cjs} +8 -8
- package/dist/{chunk-ZIDWSQFD.cjs.map → chunk-PPMRSBCA.cjs.map} +1 -1
- package/dist/{chunk-YBKHXKRR.js → chunk-SLQGF75B.js} +3 -3
- package/dist/{chunk-YBKHXKRR.js.map → chunk-SLQGF75B.js.map} +1 -1
- package/dist/{chunk-OYHHJUTH.cjs → chunk-VK7LOYGD.cjs} +12 -12
- package/dist/{chunk-OYHHJUTH.cjs.map → chunk-VK7LOYGD.cjs.map} +1 -1
- package/dist/{chunk-UGCG7DI3.cjs → chunk-VVUCWRGD.cjs} +855 -87
- package/dist/chunk-VVUCWRGD.cjs.map +1 -0
- package/dist/{chunk-2NKNTPFR.js → chunk-W5K2KOZX.js} +834 -85
- package/dist/chunk-W5K2KOZX.js.map +1 -0
- package/dist/{chunk-BQ43NQXK.js → chunk-WAN6BRTN.js} +182 -122
- package/dist/chunk-WAN6BRTN.js.map +1 -0
- package/dist/index.cjs +38 -38
- package/dist/index.js +7 -7
- package/dist/llm/model/base.types.d.ts +6 -4
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +0 -2
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts +139 -0
- package/dist/loop/network/index.d.ts.map +1 -0
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/types.d.ts +2 -0
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflow/llm-execution.d.ts +5 -5
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -1
- package/dist/loop/workflow/outer-llm-step.d.ts +2 -2
- package/dist/loop/workflow/schema.d.ts +12 -12
- package/dist/loop/workflow/stream.d.ts.map +1 -1
- package/dist/loop/workflow/tool-call-step.d.ts +10 -10
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +6 -3
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.js +5 -2
- package/dist/network/index.js.map +1 -1
- package/dist/network/network.d.ts.map +1 -1
- package/dist/network/vNext/index.cjs +32 -30
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.d.ts +7 -7
- package/dist/network/vNext/index.d.ts.map +1 -1
- package/dist/network/vNext/index.js +5 -3
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +8 -8
- package/dist/processors/index.js +2 -2
- package/dist/processors/runner.d.ts +2 -2
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +8 -8
- package/dist/scores/index.js +1 -1
- package/dist/scores/types.d.ts +2 -2
- package/dist/storage/index.cjs +3 -3
- package/dist/storage/index.js +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +13 -3
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/base/schema.d.ts +3 -2
- package/dist/stream/base/schema.d.ts.map +1 -1
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +1 -1
- package/dist/stream/types.d.ts +139 -1
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/utils.cjs +17 -17
- package/dist/utils.js +1 -1
- package/dist/workflows/default.d.ts +3 -2
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/execution-engine.d.ts +2 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/dist/workflows/legacy/machine.d.ts +1 -1
- package/dist/workflows/legacy/workflow.d.ts +1 -1
- package/dist/workflows/types.d.ts +5 -4
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +8 -4
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/dist/zod-to-json.cjs +2 -2
- package/dist/zod-to-json.cjs.map +1 -1
- package/dist/zod-to-json.js +1 -1
- package/dist/zod-to-json.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-2NKNTPFR.js.map +0 -1
- package/dist/chunk-3MSZBGO3.js +0 -15991
- package/dist/chunk-3MSZBGO3.js.map +0 -1
- package/dist/chunk-BJASJTXK.cjs +0 -16061
- package/dist/chunk-BJASJTXK.cjs.map +0 -1
- package/dist/chunk-BQ43NQXK.js.map +0 -1
- package/dist/chunk-D3UG2YLU.cjs.map +0 -1
- package/dist/chunk-KB4IEMPV.cjs +0 -548
- package/dist/chunk-KB4IEMPV.cjs.map +0 -1
- package/dist/chunk-SJO2HEVU.cjs.map +0 -1
- package/dist/chunk-TDLB5JKT.js +0 -527
- package/dist/chunk-TDLB5JKT.js.map +0 -1
- package/dist/chunk-UGCG7DI3.cjs.map +0 -1
- package/dist/chunk-YI3AIJJL.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llm/model/model.ts"],"names":["MastraBase","OpenAIReasoningSchemaCompatLayer","OpenAISchemaCompatLayer","GoogleSchemaCompatLayer","AnthropicSchemaCompatLayer","DeepSeekSchemaCompatLayer","MetaSchemaCompatLayer","applyCompatLayer","isZodType","z","zodToJsonSchema","jsonSchema","MastraError","delay","Output","generateText","generateObject","streamText","streamObject"],"mappings":"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","file":"chunk-SJO2HEVU.cjs","sourcesContent":["import type { LanguageModelV1FinishReason, LanguageModelV1StreamPart } from '@ai-sdk/provider';\nimport {\n AnthropicSchemaCompatLayer,\n applyCompatLayer,\n DeepSeekSchemaCompatLayer,\n GoogleSchemaCompatLayer,\n MetaSchemaCompatLayer,\n OpenAIReasoningSchemaCompatLayer,\n OpenAISchemaCompatLayer,\n} from '@mastra/schema-compat';\nimport { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';\nimport type { CoreMessage, LanguageModel, Schema, StreamObjectOnFinishCallback, StreamTextOnFinishCallback } from 'ai';\nimport { generateObject, generateText, jsonSchema, Output, streamObject, streamText } from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport type { ZodSchema } from 'zod';\nimport { z } from 'zod';\nimport type { MastraPrimitives } from '../../action';\nimport { AISpanType } from '../../ai-tracing';\nimport type { AnyAISpan, TracingContext } from '../../ai-tracing';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { delay, isZodType } from '../../utils';\n\nimport type {\n GenerateObjectWithMessagesArgs,\n GenerateTextResult,\n GenerateObjectResult,\n GenerateTextWithMessagesArgs,\n OriginalGenerateTextOptions,\n ToolSet,\n GenerateReturn,\n OriginalGenerateObjectOptions,\n StreamTextWithMessagesArgs,\n StreamTextResult,\n OriginalStreamTextOptions,\n StreamObjectWithMessagesArgs,\n OriginalStreamObjectOptions,\n StreamObjectResult,\n StreamReturn,\n} from './base.types';\nimport type { inferOutput } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n #model: LanguageModel;\n #mastra?: Mastra;\n\n constructor({ model, mastra }: { model: LanguageModel; mastra?: Mastra }) {\n super({ name: 'aisdk' });\n\n this.#model = model;\n\n if (mastra) {\n this.#mastra = mastra;\n if (mastra.getLogger()) {\n this.__setLogger(this.#mastra.getLogger());\n }\n }\n }\n\n __registerPrimitives(p: MastraPrimitives) {\n if (p.telemetry) {\n this.__setTelemetry(p.telemetry);\n }\n\n if (p.logger) {\n this.__setLogger(p.logger);\n }\n }\n\n __registerMastra(p: Mastra) {\n this.#mastra = p;\n }\n\n getProvider() {\n return this.#model.provider;\n }\n\n getModelId() {\n return this.#model.modelId;\n }\n\n getModel() {\n return this.#model;\n }\n\n private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n const model = this.#model;\n\n const schemaCompatLayers = [];\n\n if (model) {\n const modelInfo = {\n modelId: model.modelId,\n supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n provider: model.provider,\n };\n schemaCompatLayers.push(\n new OpenAIReasoningSchemaCompatLayer(modelInfo),\n new OpenAISchemaCompatLayer(modelInfo),\n new GoogleSchemaCompatLayer(modelInfo),\n new AnthropicSchemaCompatLayer(modelInfo),\n new DeepSeekSchemaCompatLayer(modelInfo),\n new MetaSchemaCompatLayer(modelInfo),\n );\n }\n\n return applyCompatLayer({\n schema: schema as any,\n compatLayers: schemaCompatLayers,\n mode: 'aiSdkSchema',\n });\n }\n\n private _startAISpan(params: {\n model: LanguageModel;\n tracingContext: TracingContext;\n name: string;\n streaming: boolean;\n options: any;\n }): AnyAISpan | undefined {\n const { model, tracingContext, name, streaming, options } = params;\n return tracingContext.currentSpan?.createChildSpan({\n name,\n type: AISpanType.LLM_GENERATION,\n input: options.prompt,\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: options.temperature,\n maxTokens: options.maxTokens,\n topP: options.topP,\n frequencyPenalty: options.frequencyPenalty,\n presencePenalty: options.presencePenalty,\n stop: options.stop,\n },\n streaming,\n },\n });\n }\n\n private _wrapModel(model: LanguageModel, tracingContext: TracingContext): LanguageModel {\n if (!tracingContext.currentSpan) {\n return model;\n }\n\n const wrappedDoGenerate = async (options: any) => {\n const llmSpan = this._startAISpan({\n model,\n tracingContext,\n name: `llm generate: '${model.modelId}'`,\n streaming: false,\n options,\n });\n\n try {\n const result = await model.doGenerate(options);\n\n llmSpan?.end({\n output: result.text,\n attributes: {\n usage: result.usage\n ? {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n }\n : undefined,\n },\n });\n return result;\n } catch (error) {\n llmSpan?.error({ error: error as Error });\n throw error;\n }\n };\n\n const wrappedDoStream = async (options: any) => {\n const llmSpan = this._startAISpan({\n model,\n tracingContext,\n name: `llm stream: '${model.modelId}'`,\n streaming: true,\n options,\n });\n\n try {\n const result = await model.doStream(options);\n\n // Create a wrapped stream that tracks the final result\n const originalStream = result.stream;\n let finishReason: LanguageModelV1FinishReason;\n let finalUsage: any = null;\n let textOutput: string = '';\n\n const wrappedStream = originalStream.pipeThrough(\n new TransformStream({\n // this gets called on each chunk output\n transform(chunk: LanguageModelV1StreamPart, controller) {\n //TODO: for tracing, do we want to do anything with the other chunk types?\n switch (chunk.type) {\n case 'text-delta':\n textOutput += chunk.textDelta;\n break;\n case 'finish':\n finishReason = chunk.finishReason;\n finalUsage = chunk.usage;\n break;\n }\n controller.enqueue(chunk);\n },\n // this gets called at the end of the stream\n flush() {\n llmSpan?.end({\n attributes: {\n output: textOutput,\n usage: finalUsage\n ? {\n promptTokens: finalUsage.promptTokens,\n completionTokens: finalUsage.completionTokens,\n totalTokens: finalUsage.totalTokens,\n }\n : undefined,\n },\n metadata: {\n finishReason,\n },\n });\n },\n }),\n );\n\n return {\n ...result,\n stream: wrappedStream,\n };\n } catch (error) {\n llmSpan?.error({ error: error as Error });\n throw error;\n }\n };\n\n // Create a proper proxy to preserve all model properties including getters/setters\n return new Proxy(model, {\n get(target, prop) {\n if (prop === 'doGenerate') return wrappedDoGenerate;\n if (prop === 'doStream') return wrappedDoStream;\n return target[prop as keyof typeof target];\n },\n });\n }\n\n async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n runId,\n messages,\n maxSteps = 5,\n tools = {},\n temperature,\n toolChoice = 'auto',\n onStepFinish,\n experimental_output,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating text`, {\n runId,\n messages,\n maxSteps,\n threadId,\n resourceId,\n tools: Object.keys(tools),\n });\n\n let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n\n if (isZodType(experimental_output)) {\n schema = experimental_output as z.ZodType<inferOutput<Z>>;\n if (schema instanceof z.ZodArray) {\n schema = schema._def.type as z.ZodType<inferOutput<Z>>;\n }\n\n let jsonSchemaToUse;\n jsonSchemaToUse = zodToJsonSchema(schema, 'jsonSchema7') as JSONSchema7;\n\n schema = jsonSchema(jsonSchemaToUse) as Schema<inferOutput<Z>>;\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<inferOutput<Z>>;\n }\n }\n\n const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n ...rest,\n messages,\n model: this._wrapModel(model, tracingContext),\n temperature,\n tools: {\n ...(tools as Tools),\n },\n toolChoice,\n maxSteps,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Text Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'], 10) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n experimental_output: schema\n ? Output.object({\n schema,\n })\n : undefined,\n };\n\n try {\n const result: GenerateTextResult<Tools, Z> = await generateText(argsForExecute);\n\n if (schema && result.finishReason === 'stop') {\n result.object = (result as any).experimental_output;\n }\n\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n async __textObject<Z extends ZodSchema | JSONSchema7>({\n messages,\n structuredOutput,\n runId,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating a text object`, { runId });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (structuredOutput instanceof z.ZodArray) {\n output = 'array';\n structuredOutput = structuredOutput._def.type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n\n const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n ...rest,\n messages,\n model: this._wrapModel(model, tracingContext),\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n schema: processedSchema as Schema<Z>,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n };\n\n try {\n // @ts-expect-error - output in our implementation can only be object or array\n return await generateObject(argsForExecute);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n tools = {},\n runId,\n temperature,\n toolChoice = 'auto',\n experimental_output,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming text`, {\n runId,\n threadId,\n resourceId,\n messages,\n maxSteps,\n tools: Object.keys(tools || {}),\n });\n\n let schema: z.ZodType<Z> | Schema<Z> | undefined;\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n if (typeof (experimental_output as any).parse === 'function') {\n schema = experimental_output as z.ZodType<Z>;\n if (schema instanceof z.ZodArray) {\n schema = schema._def.type as z.ZodType<Z>;\n }\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n }\n }\n\n const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n model: this._wrapModel(model, tracingContext),\n temperature,\n tools: {\n ...(tools as Tools),\n },\n maxSteps,\n toolChoice,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'], 10) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n onFinish: async props => {\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Finished:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n ...rest,\n messages,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n experimental_output: schema\n ? (Output.object({\n schema,\n }) as any)\n : undefined,\n };\n\n try {\n return streamText(argsForExecute);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n __streamObject<T extends ZodSchema | JSONSchema7>({\n messages,\n runId,\n runtimeContext,\n threadId,\n resourceId,\n onFinish,\n structuredOutput,\n telemetry,\n tracingContext,\n ...rest\n }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming structured output`, {\n runId,\n messages,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (structuredOutput instanceof z.ZodArray) {\n output = 'array';\n structuredOutput = structuredOutput._def.type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n\n const argsForExecute: OriginalStreamObjectOptions<T> = {\n ...rest,\n model: this._wrapModel(model, tracingContext),\n onFinish: async (props: any) => {\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n toolCalls: '',\n toolResults: '',\n finishReason: '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Object Stream Finished:', {\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n messages,\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n schema: processedSchema as Schema<inferOutput<T>>,\n };\n\n try {\n return streamObject(argsForExecute as any);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n if (Array.isArray(messages)) {\n return messages.map(m => {\n if (typeof m === 'string') {\n return {\n role: 'user',\n content: m,\n };\n }\n return m;\n });\n }\n\n return [\n {\n role: 'user',\n content: messages,\n },\n ];\n }\n\n async generate<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n output,\n ...rest\n }: Omit<\n Output extends undefined\n ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n 'messages'\n > & { output?: Output },\n ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n const { maxSteps, onStepFinish, ...textOptions } = rest as Omit<\n GenerateTextWithMessagesArgs<Tools, StructuredOutput>,\n 'messages'\n >;\n return (await this.__text<Tools, StructuredOutput>({\n messages: msgs,\n maxSteps,\n onStepFinish,\n ...textOptions,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n return (await this.__textObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n ...rest,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n stream<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n maxSteps = 5,\n output,\n onFinish,\n ...rest\n }: Omit<\n Output extends undefined\n ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n 'messages'\n > & { output?: Output },\n ): StreamReturn<Tools, Output, StructuredOutput> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n return this.__stream({\n messages: msgs,\n maxSteps,\n onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n\n return this.__streamObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n}\n"]}
|
package/dist/chunk-TDLB5JKT.js
DELETED
|
@@ -1,527 +0,0 @@
|
|
|
1
|
-
import { RuntimeContext } from './chunk-HLRWYUFN.js';
|
|
2
|
-
import { ToolStream } from './chunk-YW7UILPE.js';
|
|
3
|
-
import { isVercelTool, validateToolInput } from './chunk-BJGHUKKM.js';
|
|
4
|
-
import { wrapMastra } from './chunk-2NKNTPFR.js';
|
|
5
|
-
import { MastraError } from './chunk-MCOVMKIS.js';
|
|
6
|
-
import { MastraBase } from './chunk-6GF5M4GX.js';
|
|
7
|
-
import { createHash } from 'crypto';
|
|
8
|
-
import jsonSchemaToZod from 'json-schema-to-zod';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { convertZodSchemaToAISDKSchema, OpenAIReasoningSchemaCompatLayer, OpenAISchemaCompatLayer, GoogleSchemaCompatLayer, AnthropicSchemaCompatLayer, DeepSeekSchemaCompatLayer, MetaSchemaCompatLayer, applyCompatLayer } from '@mastra/schema-compat';
|
|
11
|
-
|
|
12
|
-
var CoreToolBuilder = class extends MastraBase {
|
|
13
|
-
originalTool;
|
|
14
|
-
options;
|
|
15
|
-
logType;
|
|
16
|
-
constructor(input) {
|
|
17
|
-
super({ name: "CoreToolBuilder" });
|
|
18
|
-
this.originalTool = input.originalTool;
|
|
19
|
-
this.options = input.options;
|
|
20
|
-
this.logType = input.logType;
|
|
21
|
-
}
|
|
22
|
-
// Helper to get parameters based on tool type
|
|
23
|
-
getParameters = () => {
|
|
24
|
-
if (isVercelTool(this.originalTool)) {
|
|
25
|
-
return this.originalTool.parameters ?? z.object({});
|
|
26
|
-
}
|
|
27
|
-
return this.originalTool.inputSchema ?? z.object({});
|
|
28
|
-
};
|
|
29
|
-
getOutputSchema = () => {
|
|
30
|
-
if ("outputSchema" in this.originalTool) return this.originalTool.outputSchema;
|
|
31
|
-
return null;
|
|
32
|
-
};
|
|
33
|
-
// For provider-defined tools, we need to include all required properties
|
|
34
|
-
buildProviderTool(tool) {
|
|
35
|
-
if ("type" in tool && tool.type === "provider-defined" && "id" in tool && typeof tool.id === "string" && tool.id.includes(".")) {
|
|
36
|
-
const parameters = this.getParameters();
|
|
37
|
-
const outputSchema = this.getOutputSchema();
|
|
38
|
-
return {
|
|
39
|
-
type: "provider-defined",
|
|
40
|
-
id: tool.id,
|
|
41
|
-
args: "args" in this.originalTool ? this.originalTool.args : {},
|
|
42
|
-
description: tool.description,
|
|
43
|
-
parameters: convertZodSchemaToAISDKSchema(parameters),
|
|
44
|
-
...outputSchema ? { outputSchema: convertZodSchemaToAISDKSchema(outputSchema) } : {},
|
|
45
|
-
execute: this.originalTool.execute ? this.createExecute(
|
|
46
|
-
this.originalTool,
|
|
47
|
-
{ ...this.options, description: this.originalTool.description },
|
|
48
|
-
this.logType
|
|
49
|
-
) : void 0
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return void 0;
|
|
53
|
-
}
|
|
54
|
-
createLogMessageOptions({ agentName, toolName, type }) {
|
|
55
|
-
if (!agentName) {
|
|
56
|
-
return {
|
|
57
|
-
start: `Executing tool ${toolName}`,
|
|
58
|
-
error: `Failed tool execution`
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
const prefix = `[Agent:${agentName}]`;
|
|
62
|
-
const toolType = type === "toolset" ? "toolset" : "tool";
|
|
63
|
-
return {
|
|
64
|
-
start: `${prefix} - Executing ${toolType} ${toolName}`,
|
|
65
|
-
error: `${prefix} - Failed ${toolType} execution`
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
createExecute(tool, options, logType) {
|
|
69
|
-
const { logger, mastra: _mastra, memory: _memory, runtimeContext, ...rest } = options;
|
|
70
|
-
const { start, error } = this.createLogMessageOptions({
|
|
71
|
-
agentName: options.agentName,
|
|
72
|
-
toolName: options.name,
|
|
73
|
-
type: logType
|
|
74
|
-
});
|
|
75
|
-
const execFunction = async (args, execOptions) => {
|
|
76
|
-
const toolSpan = options.tracingContext?.currentSpan?.createChildSpan({
|
|
77
|
-
type: "tool_call" /* TOOL_CALL */,
|
|
78
|
-
name: `tool: ${options.name}`,
|
|
79
|
-
input: args,
|
|
80
|
-
attributes: {
|
|
81
|
-
toolId: options.name,
|
|
82
|
-
toolDescription: options.description,
|
|
83
|
-
toolType: logType || "tool"
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
try {
|
|
87
|
-
let result;
|
|
88
|
-
if (isVercelTool(tool)) {
|
|
89
|
-
result = await tool?.execute?.(args, execOptions);
|
|
90
|
-
} else {
|
|
91
|
-
const wrappedMastra = options.mastra ? wrapMastra(options.mastra, { currentSpan: toolSpan }) : options.mastra;
|
|
92
|
-
result = await tool?.execute?.(
|
|
93
|
-
{
|
|
94
|
-
context: args,
|
|
95
|
-
threadId: options.threadId,
|
|
96
|
-
resourceId: options.resourceId,
|
|
97
|
-
mastra: wrappedMastra,
|
|
98
|
-
memory: options.memory,
|
|
99
|
-
runId: options.runId,
|
|
100
|
-
runtimeContext: options.runtimeContext ?? new RuntimeContext(),
|
|
101
|
-
writer: new ToolStream(
|
|
102
|
-
{
|
|
103
|
-
prefix: "tool",
|
|
104
|
-
callId: execOptions.toolCallId,
|
|
105
|
-
name: options.name,
|
|
106
|
-
runId: options.runId
|
|
107
|
-
},
|
|
108
|
-
options.writableStream || execOptions.writableStream
|
|
109
|
-
),
|
|
110
|
-
tracingContext: { currentSpan: toolSpan }
|
|
111
|
-
},
|
|
112
|
-
execOptions
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
toolSpan?.end({ output: result });
|
|
116
|
-
return result ?? void 0;
|
|
117
|
-
} catch (error2) {
|
|
118
|
-
toolSpan?.error({ error: error2 });
|
|
119
|
-
throw error2;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
return async (args, execOptions) => {
|
|
123
|
-
let logger2 = options.logger || this.logger;
|
|
124
|
-
try {
|
|
125
|
-
logger2.debug(start, { ...rest, args });
|
|
126
|
-
const parameters = this.getParameters();
|
|
127
|
-
const { data, error: error2 } = validateToolInput(parameters, args, options.name);
|
|
128
|
-
if (error2) {
|
|
129
|
-
logger2.warn(`Tool input validation failed for '${options.name}'`, {
|
|
130
|
-
toolName: options.name,
|
|
131
|
-
errors: error2.validationErrors,
|
|
132
|
-
args
|
|
133
|
-
});
|
|
134
|
-
return error2;
|
|
135
|
-
}
|
|
136
|
-
args = data;
|
|
137
|
-
return await new Promise((resolve, reject) => {
|
|
138
|
-
setImmediate(async () => {
|
|
139
|
-
try {
|
|
140
|
-
const result = await execFunction(args, execOptions);
|
|
141
|
-
resolve(result);
|
|
142
|
-
} catch (err) {
|
|
143
|
-
reject(err);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
} catch (err) {
|
|
148
|
-
const mastraError = new MastraError(
|
|
149
|
-
{
|
|
150
|
-
id: "TOOL_EXECUTION_FAILED",
|
|
151
|
-
domain: "TOOL" /* TOOL */,
|
|
152
|
-
category: "USER" /* USER */,
|
|
153
|
-
details: {
|
|
154
|
-
errorMessage: String(error),
|
|
155
|
-
argsJson: JSON.stringify(args),
|
|
156
|
-
model: rest.model?.modelId ?? ""
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
err
|
|
160
|
-
);
|
|
161
|
-
logger2.trackException(mastraError);
|
|
162
|
-
logger2.error(error, { ...rest, error: mastraError, args });
|
|
163
|
-
return mastraError;
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
buildV5() {
|
|
168
|
-
const builtTool = this.build();
|
|
169
|
-
if (!builtTool.parameters) {
|
|
170
|
-
throw new Error("Tool parameters are required");
|
|
171
|
-
}
|
|
172
|
-
return {
|
|
173
|
-
...builtTool,
|
|
174
|
-
inputSchema: builtTool.parameters,
|
|
175
|
-
onInputStart: "onInputStart" in this.originalTool ? this.originalTool.onInputStart : void 0,
|
|
176
|
-
onInputDelta: "onInputDelta" in this.originalTool ? this.originalTool.onInputDelta : void 0,
|
|
177
|
-
onInputAvailable: "onInputAvailable" in this.originalTool ? this.originalTool.onInputAvailable : void 0
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
build() {
|
|
181
|
-
const providerTool = this.buildProviderTool(this.originalTool);
|
|
182
|
-
if (providerTool) {
|
|
183
|
-
return providerTool;
|
|
184
|
-
}
|
|
185
|
-
const definition = {
|
|
186
|
-
type: "function",
|
|
187
|
-
description: this.originalTool.description,
|
|
188
|
-
parameters: this.getParameters(),
|
|
189
|
-
outputSchema: this.getOutputSchema(),
|
|
190
|
-
execute: this.originalTool.execute ? this.createExecute(
|
|
191
|
-
this.originalTool,
|
|
192
|
-
{ ...this.options, description: this.originalTool.description },
|
|
193
|
-
this.logType
|
|
194
|
-
) : void 0
|
|
195
|
-
};
|
|
196
|
-
const model = this.options.model;
|
|
197
|
-
const schemaCompatLayers = [];
|
|
198
|
-
if (model) {
|
|
199
|
-
const supportsStructuredOutputs = model.specificationVersion !== "v2" ? model.supportsStructuredOutputs ?? false : false;
|
|
200
|
-
const modelInfo = {
|
|
201
|
-
modelId: model.modelId,
|
|
202
|
-
supportsStructuredOutputs,
|
|
203
|
-
provider: model.provider
|
|
204
|
-
};
|
|
205
|
-
schemaCompatLayers.push(
|
|
206
|
-
new OpenAIReasoningSchemaCompatLayer(modelInfo),
|
|
207
|
-
new OpenAISchemaCompatLayer(modelInfo),
|
|
208
|
-
new GoogleSchemaCompatLayer(modelInfo),
|
|
209
|
-
new AnthropicSchemaCompatLayer(modelInfo),
|
|
210
|
-
new DeepSeekSchemaCompatLayer(modelInfo),
|
|
211
|
-
new MetaSchemaCompatLayer(modelInfo)
|
|
212
|
-
);
|
|
213
|
-
}
|
|
214
|
-
const processedSchema = applyCompatLayer({
|
|
215
|
-
schema: this.getParameters(),
|
|
216
|
-
compatLayers: schemaCompatLayers,
|
|
217
|
-
mode: "aiSdkSchema"
|
|
218
|
-
});
|
|
219
|
-
let processedOutputSchema;
|
|
220
|
-
if (this.getOutputSchema()) {
|
|
221
|
-
processedOutputSchema = applyCompatLayer({
|
|
222
|
-
schema: this.getOutputSchema(),
|
|
223
|
-
compatLayers: schemaCompatLayers,
|
|
224
|
-
mode: "aiSdkSchema"
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
return {
|
|
228
|
-
...definition,
|
|
229
|
-
id: "id" in this.originalTool ? this.originalTool.id : void 0,
|
|
230
|
-
parameters: processedSchema,
|
|
231
|
-
outputSchema: processedOutputSchema
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
// src/utils.ts
|
|
237
|
-
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
238
|
-
function deepMerge(target, source) {
|
|
239
|
-
const output = { ...target };
|
|
240
|
-
if (!source) return output;
|
|
241
|
-
Object.keys(source).forEach((key) => {
|
|
242
|
-
const targetValue = output[key];
|
|
243
|
-
const sourceValue = source[key];
|
|
244
|
-
if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
|
|
245
|
-
output[key] = sourceValue;
|
|
246
|
-
} else if (sourceValue instanceof Object && targetValue instanceof Object && !Array.isArray(sourceValue) && !Array.isArray(targetValue)) {
|
|
247
|
-
output[key] = deepMerge(targetValue, sourceValue);
|
|
248
|
-
} else if (sourceValue !== void 0) {
|
|
249
|
-
output[key] = sourceValue;
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
return output;
|
|
253
|
-
}
|
|
254
|
-
function generateEmptyFromSchema(schema) {
|
|
255
|
-
try {
|
|
256
|
-
const parsedSchema = JSON.parse(schema);
|
|
257
|
-
if (!parsedSchema || parsedSchema.type !== "object" || !parsedSchema.properties) return {};
|
|
258
|
-
const obj = {};
|
|
259
|
-
const TYPE_DEFAULTS = {
|
|
260
|
-
string: "",
|
|
261
|
-
array: [],
|
|
262
|
-
object: {},
|
|
263
|
-
number: 0,
|
|
264
|
-
integer: 0,
|
|
265
|
-
boolean: false
|
|
266
|
-
};
|
|
267
|
-
for (const [key, prop] of Object.entries(parsedSchema.properties)) {
|
|
268
|
-
obj[key] = TYPE_DEFAULTS[prop.type] ?? null;
|
|
269
|
-
}
|
|
270
|
-
return obj;
|
|
271
|
-
} catch {
|
|
272
|
-
return {};
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
async function* maskStreamTags(stream, tag, options = {}) {
|
|
276
|
-
const { onStart, onEnd, onMask } = options;
|
|
277
|
-
const openTag = `<${tag}>`;
|
|
278
|
-
const closeTag = `</${tag}>`;
|
|
279
|
-
let buffer = "";
|
|
280
|
-
let fullContent = "";
|
|
281
|
-
let isMasking = false;
|
|
282
|
-
let isBuffering = false;
|
|
283
|
-
const trimOutsideDelimiter = (text, delimiter, trim) => {
|
|
284
|
-
if (!text.includes(delimiter)) {
|
|
285
|
-
return text;
|
|
286
|
-
}
|
|
287
|
-
const parts = text.split(delimiter);
|
|
288
|
-
if (trim === `before-start`) {
|
|
289
|
-
return `${delimiter}${parts[1]}`;
|
|
290
|
-
}
|
|
291
|
-
return `${parts[0]}${delimiter}`;
|
|
292
|
-
};
|
|
293
|
-
const startsWith = (text, pattern) => {
|
|
294
|
-
if (pattern.includes(openTag.substring(0, 3))) {
|
|
295
|
-
pattern = trimOutsideDelimiter(pattern, `<`, `before-start`);
|
|
296
|
-
}
|
|
297
|
-
return text.trim().startsWith(pattern.trim());
|
|
298
|
-
};
|
|
299
|
-
for await (const chunk of stream) {
|
|
300
|
-
fullContent += chunk;
|
|
301
|
-
if (isBuffering) buffer += chunk;
|
|
302
|
-
const chunkHasTag = startsWith(chunk, openTag);
|
|
303
|
-
const bufferHasTag = !chunkHasTag && isBuffering && startsWith(openTag, buffer);
|
|
304
|
-
let toYieldBeforeMaskedStartTag = ``;
|
|
305
|
-
if (!isMasking && (chunkHasTag || bufferHasTag)) {
|
|
306
|
-
isMasking = true;
|
|
307
|
-
isBuffering = false;
|
|
308
|
-
const taggedTextToMask = trimOutsideDelimiter(buffer, `<`, `before-start`);
|
|
309
|
-
if (taggedTextToMask !== buffer.trim()) {
|
|
310
|
-
toYieldBeforeMaskedStartTag = buffer.replace(taggedTextToMask, ``);
|
|
311
|
-
}
|
|
312
|
-
buffer = "";
|
|
313
|
-
onStart?.();
|
|
314
|
-
}
|
|
315
|
-
if (!isMasking && !isBuffering && startsWith(openTag, chunk) && chunk.trim() !== "") {
|
|
316
|
-
isBuffering = true;
|
|
317
|
-
buffer += chunk;
|
|
318
|
-
continue;
|
|
319
|
-
}
|
|
320
|
-
if (isBuffering && buffer && !startsWith(openTag, buffer)) {
|
|
321
|
-
yield buffer;
|
|
322
|
-
buffer = "";
|
|
323
|
-
isBuffering = false;
|
|
324
|
-
continue;
|
|
325
|
-
}
|
|
326
|
-
if (isMasking && fullContent.includes(closeTag)) {
|
|
327
|
-
onMask?.(chunk);
|
|
328
|
-
onEnd?.();
|
|
329
|
-
isMasking = false;
|
|
330
|
-
const lastFullContent = fullContent;
|
|
331
|
-
fullContent = ``;
|
|
332
|
-
const textUntilEndTag = trimOutsideDelimiter(lastFullContent, closeTag, "after-end");
|
|
333
|
-
if (textUntilEndTag !== lastFullContent) {
|
|
334
|
-
yield lastFullContent.replace(textUntilEndTag, ``);
|
|
335
|
-
}
|
|
336
|
-
continue;
|
|
337
|
-
}
|
|
338
|
-
if (isMasking) {
|
|
339
|
-
onMask?.(chunk);
|
|
340
|
-
if (toYieldBeforeMaskedStartTag) {
|
|
341
|
-
yield toYieldBeforeMaskedStartTag;
|
|
342
|
-
}
|
|
343
|
-
continue;
|
|
344
|
-
}
|
|
345
|
-
yield chunk;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
function resolveSerializedZodOutput(schema) {
|
|
349
|
-
return Function("z", `"use strict";return (${schema});`)(z);
|
|
350
|
-
}
|
|
351
|
-
function isZodType(value) {
|
|
352
|
-
return typeof value === "object" && value !== null && "_def" in value && "parse" in value && typeof value.parse === "function" && "safeParse" in value && typeof value.safeParse === "function";
|
|
353
|
-
}
|
|
354
|
-
function createDeterministicId(input) {
|
|
355
|
-
return createHash("sha256").update(input).digest("hex").slice(0, 8);
|
|
356
|
-
}
|
|
357
|
-
function setVercelToolProperties(tool) {
|
|
358
|
-
const inputSchema = convertVercelToolParameters(tool);
|
|
359
|
-
const toolId = !("id" in tool) ? tool.description ? `tool-${createDeterministicId(tool.description)}` : `tool-${Math.random().toString(36).substring(2, 9)}` : tool.id;
|
|
360
|
-
return {
|
|
361
|
-
...tool,
|
|
362
|
-
id: toolId,
|
|
363
|
-
inputSchema
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
function ensureToolProperties(tools) {
|
|
367
|
-
const toolsWithProperties = Object.keys(tools).reduce((acc, key) => {
|
|
368
|
-
const tool = tools?.[key];
|
|
369
|
-
if (tool) {
|
|
370
|
-
if (isVercelTool(tool)) {
|
|
371
|
-
acc[key] = setVercelToolProperties(tool);
|
|
372
|
-
} else {
|
|
373
|
-
acc[key] = tool;
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
return acc;
|
|
377
|
-
}, {});
|
|
378
|
-
return toolsWithProperties;
|
|
379
|
-
}
|
|
380
|
-
function convertVercelToolParameters(tool) {
|
|
381
|
-
const schema = tool.parameters ?? z.object({});
|
|
382
|
-
return isZodType(schema) ? schema : resolveSerializedZodOutput(jsonSchemaToZod(schema));
|
|
383
|
-
}
|
|
384
|
-
function makeCoreTool(originalTool, options, logType) {
|
|
385
|
-
return new CoreToolBuilder({ originalTool, options, logType }).build();
|
|
386
|
-
}
|
|
387
|
-
function makeCoreToolV5(originalTool, options, logType) {
|
|
388
|
-
return new CoreToolBuilder({ originalTool, options, logType }).buildV5();
|
|
389
|
-
}
|
|
390
|
-
function createMastraProxy({ mastra, logger }) {
|
|
391
|
-
return new Proxy(mastra, {
|
|
392
|
-
get(target, prop) {
|
|
393
|
-
const hasProp = Reflect.has(target, prop);
|
|
394
|
-
if (hasProp) {
|
|
395
|
-
const value = Reflect.get(target, prop);
|
|
396
|
-
const isFunction = typeof value === "function";
|
|
397
|
-
if (isFunction) {
|
|
398
|
-
return value.bind(target);
|
|
399
|
-
}
|
|
400
|
-
return value;
|
|
401
|
-
}
|
|
402
|
-
if (prop === "logger") {
|
|
403
|
-
logger.warn(`Please use 'getLogger' instead, logger is deprecated`);
|
|
404
|
-
return Reflect.apply(target.getLogger, target, []);
|
|
405
|
-
}
|
|
406
|
-
if (prop === "telemetry") {
|
|
407
|
-
logger.warn(`Please use 'getTelemetry' instead, telemetry is deprecated`);
|
|
408
|
-
return Reflect.apply(target.getTelemetry, target, []);
|
|
409
|
-
}
|
|
410
|
-
if (prop === "storage") {
|
|
411
|
-
logger.warn(`Please use 'getStorage' instead, storage is deprecated`);
|
|
412
|
-
return Reflect.get(target, "storage");
|
|
413
|
-
}
|
|
414
|
-
if (prop === "agents") {
|
|
415
|
-
logger.warn(`Please use 'getAgents' instead, agents is deprecated`);
|
|
416
|
-
return Reflect.apply(target.getAgents, target, []);
|
|
417
|
-
}
|
|
418
|
-
if (prop === "tts") {
|
|
419
|
-
logger.warn(`Please use 'getTTS' instead, tts is deprecated`);
|
|
420
|
-
return Reflect.apply(target.getTTS, target, []);
|
|
421
|
-
}
|
|
422
|
-
if (prop === "vectors") {
|
|
423
|
-
logger.warn(`Please use 'getVectors' instead, vectors is deprecated`);
|
|
424
|
-
return Reflect.apply(target.getVectors, target, []);
|
|
425
|
-
}
|
|
426
|
-
if (prop === "memory") {
|
|
427
|
-
logger.warn(`Please use 'getMemory' instead, memory is deprecated`);
|
|
428
|
-
return Reflect.get(target, "memory");
|
|
429
|
-
}
|
|
430
|
-
return Reflect.get(target, prop);
|
|
431
|
-
}
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
function checkEvalStorageFields(traceObject, logger) {
|
|
435
|
-
const missingFields = [];
|
|
436
|
-
if (!traceObject.input) missingFields.push("input");
|
|
437
|
-
if (!traceObject.output) missingFields.push("output");
|
|
438
|
-
if (!traceObject.agentName) missingFields.push("agent_name");
|
|
439
|
-
if (!traceObject.metricName) missingFields.push("metric_name");
|
|
440
|
-
if (!traceObject.instructions) missingFields.push("instructions");
|
|
441
|
-
if (!traceObject.globalRunId) missingFields.push("global_run_id");
|
|
442
|
-
if (!traceObject.runId) missingFields.push("run_id");
|
|
443
|
-
if (missingFields.length > 0) {
|
|
444
|
-
if (logger) {
|
|
445
|
-
logger.warn("Skipping evaluation storage due to missing required fields", {
|
|
446
|
-
missingFields,
|
|
447
|
-
runId: traceObject.runId,
|
|
448
|
-
agentName: traceObject.agentName
|
|
449
|
-
});
|
|
450
|
-
} else {
|
|
451
|
-
console.warn("Skipping evaluation storage due to missing required fields", {
|
|
452
|
-
missingFields,
|
|
453
|
-
runId: traceObject.runId,
|
|
454
|
-
agentName: traceObject.agentName
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
return false;
|
|
458
|
-
}
|
|
459
|
-
return true;
|
|
460
|
-
}
|
|
461
|
-
function detectSingleMessageCharacteristics(message) {
|
|
462
|
-
if (typeof message === "object" && message !== null && (message.role === "function" || // UI-only role
|
|
463
|
-
message.role === "data" || // UI-only role
|
|
464
|
-
"toolInvocations" in message || // UI-specific field
|
|
465
|
-
"parts" in message || // UI-specific field
|
|
466
|
-
"experimental_attachments" in message)) {
|
|
467
|
-
return "has-ui-specific-parts";
|
|
468
|
-
} else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
|
|
469
|
-
"experimental_providerMetadata" in message || "providerOptions" in message)) {
|
|
470
|
-
return "has-core-specific-parts";
|
|
471
|
-
} else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
|
|
472
|
-
return "message";
|
|
473
|
-
} else {
|
|
474
|
-
return "other";
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
function isUiMessage(message) {
|
|
478
|
-
return detectSingleMessageCharacteristics(message) === `has-ui-specific-parts`;
|
|
479
|
-
}
|
|
480
|
-
function isCoreMessage(message) {
|
|
481
|
-
return [`has-core-specific-parts`, `message`].includes(detectSingleMessageCharacteristics(message));
|
|
482
|
-
}
|
|
483
|
-
var SQL_IDENTIFIER_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
484
|
-
function parseSqlIdentifier(name, kind = "identifier") {
|
|
485
|
-
if (!SQL_IDENTIFIER_PATTERN.test(name) || name.length > 63) {
|
|
486
|
-
throw new Error(
|
|
487
|
-
`Invalid ${kind}: ${name}. Must start with a letter or underscore, contain only letters, numbers, or underscores, and be at most 63 characters long.`
|
|
488
|
-
);
|
|
489
|
-
}
|
|
490
|
-
return name;
|
|
491
|
-
}
|
|
492
|
-
function parseFieldKey(key) {
|
|
493
|
-
if (!key) throw new Error("Field key cannot be empty");
|
|
494
|
-
const segments = key.split(".");
|
|
495
|
-
for (const segment of segments) {
|
|
496
|
-
if (!SQL_IDENTIFIER_PATTERN.test(segment) || segment.length > 63) {
|
|
497
|
-
throw new Error(`Invalid field key segment: ${segment} in ${key}`);
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
return key;
|
|
501
|
-
}
|
|
502
|
-
async function fetchWithRetry(url, options = {}, maxRetries = 3) {
|
|
503
|
-
let retryCount = 0;
|
|
504
|
-
let lastError = null;
|
|
505
|
-
while (retryCount < maxRetries) {
|
|
506
|
-
try {
|
|
507
|
-
const response = await fetch(url, options);
|
|
508
|
-
if (!response.ok) {
|
|
509
|
-
throw new Error(`Request failed with status: ${response.status} ${response.statusText}`);
|
|
510
|
-
}
|
|
511
|
-
return response;
|
|
512
|
-
} catch (error) {
|
|
513
|
-
lastError = error instanceof Error ? error : new Error(String(error));
|
|
514
|
-
retryCount++;
|
|
515
|
-
if (retryCount >= maxRetries) {
|
|
516
|
-
break;
|
|
517
|
-
}
|
|
518
|
-
const delay2 = Math.min(1e3 * Math.pow(2, retryCount) * 1e3, 1e4);
|
|
519
|
-
await new Promise((resolve) => setTimeout(resolve, delay2));
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
throw lastError || new Error("Request failed after multiple retry attempts");
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
export { checkEvalStorageFields, createMastraProxy, deepMerge, delay, ensureToolProperties, fetchWithRetry, generateEmptyFromSchema, isCoreMessage, isUiMessage, isZodType, makeCoreTool, makeCoreToolV5, maskStreamTags, parseFieldKey, parseSqlIdentifier, resolveSerializedZodOutput };
|
|
526
|
-
//# sourceMappingURL=chunk-TDLB5JKT.js.map
|
|
527
|
-
//# sourceMappingURL=chunk-TDLB5JKT.js.map
|