@mastra/cursor 0.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.ts","../src/index.ts"],"names":["randomUUID","ReadableStream","ChunkFrom","CursorAgent","toolName"],"mappings":"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","file":"index.js","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { ReadableStream, TransformStream } from 'node:stream/web';\nimport type { ReadableStreamDefaultController } from 'node:stream/web';\n\nimport type { AgentExecutionOptionsBase, MastraLanguageModel } from '@mastra/core/agent';\nimport { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { Mastra } from '@mastra/core/mastra';\nimport { EntityType, executeWithContext, getOrCreateSpan, SpanType } from '@mastra/core/observability';\nimport type {\n AIModelGenerationSpan,\n CostContext,\n IModelSpanTracker,\n Span,\n UsageStats,\n} from '@mastra/core/observability';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { ChunkType, FullOutput, JSONValue, LanguageModelUsage, ProviderMetadata } from '@mastra/core/stream';\nimport { ChunkFrom, MastraModelOutput } from '@mastra/core/stream';\ntype MastraModelOutputOptions<OUTPUT = undefined> = ConstructorParameters<\n typeof MastraModelOutput<OUTPUT>\n>[0]['options'];\n\nexport type SDKAgentRunOptions<OUTPUT = unknown> = AgentExecutionOptionsBase<OUTPUT> & {\n signal?: AbortSignal;\n [key: string]: unknown;\n};\n\nexport type V3Usage = {\n inputTokens: {\n total: number | undefined;\n noCache?: number;\n cacheRead?: number;\n cacheWrite?: number;\n };\n outputTokens: {\n total: number | undefined;\n text?: number;\n };\n};\n\nexport type SDKModelGenerateResult = {\n content: Array<{ type: 'text'; text: string }>;\n finishReason: { unified: 'stop'; raw: 'stop' };\n usage: V3Usage;\n response: {\n id: string;\n modelId: string;\n timestamp: Date;\n };\n providerMetadata?: ProviderMetadata;\n costContext?: CostContext;\n};\n\nexport function createNoopModel({ modelId, provider }: { modelId: string; provider: string }): MastraLanguageModel {\n return {\n modelId,\n provider,\n specificationVersion: 'v3',\n supportedUrls: {},\n doGenerate: async () => createNoopStreamResult(),\n doStream: async () => createNoopStreamResult(),\n } as MastraLanguageModel;\n}\n\nfunction createNoopStreamResult(): { stream: ReadableStream<never> } {\n return {\n stream: new ReadableStream<never>({\n start: controller => controller.close(),\n }),\n };\n}\n\nexport function createCompletedMastraStream({\n runId,\n prompt,\n text,\n responseId,\n modelId,\n usage,\n providerMetadata,\n costContext,\n}: {\n runId: string;\n prompt: string;\n text: string;\n responseId: string;\n modelId: string;\n usage: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n costContext?: CostContext;\n}): ReadableStream<ChunkType> {\n return new ReadableStream<ChunkType>({\n start(controller) {\n const textId = randomUUID();\n enqueueStartChunks(controller, {\n runId,\n prompt,\n textId,\n responseId,\n modelId,\n providerMetadata,\n });\n if (text) {\n enqueueTextDelta(controller, runId, textId, text);\n }\n enqueueFinishChunks(controller, {\n runId,\n prompt,\n textId,\n text,\n responseId,\n modelId,\n usage,\n providerMetadata,\n costContext,\n });\n controller.close();\n },\n });\n}\n\nexport function createMastraOutput<OUTPUT>({\n messages,\n runId,\n modelId,\n provider,\n stream,\n options,\n}: {\n messages: MessageListInput;\n runId: string;\n modelId: string;\n provider: string;\n stream: ReadableStream<ChunkType>;\n options?: Partial<MastraModelOutputOptions<OUTPUT>>;\n}): MastraModelOutput<OUTPUT> {\n const messageList = new MessageList();\n messageList.add(messages, 'input');\n messageList.add([{ role: 'assistant', content: '' }], 'response');\n\n return new MastraModelOutput<OUTPUT>({\n model: {\n modelId,\n provider,\n version: 'v3',\n },\n stream: stream as ReadableStream<ChunkType<OUTPUT>>,\n messageList,\n messageId: randomUUID(),\n options: {\n ...options,\n runId,\n },\n });\n}\n\nexport function toFullOutput<OUTPUT>({\n messages,\n runId,\n provider,\n result,\n options,\n}: {\n messages: MessageListInput;\n runId: string;\n provider: string;\n result: SDKModelGenerateResult;\n options?: Partial<MastraModelOutputOptions<OUTPUT>>;\n}): Promise<FullOutput<OUTPUT>> {\n const text = result.content.map(part => part.text).join('');\n const stream = createCompletedMastraStream({\n runId,\n prompt: promptToText(messages),\n text,\n responseId: result.response.id,\n modelId: result.response.modelId,\n usage: toLanguageModelUsage(result.usage),\n providerMetadata: result.providerMetadata,\n costContext: result.costContext,\n });\n\n return createMastraOutput<OUTPUT>({\n messages,\n runId,\n modelId: result.response.modelId,\n provider,\n stream,\n options,\n }).getFullOutput();\n}\n\nexport type SDKAgentTelemetryOptions<OUTPUT = unknown> = {\n agentId: string;\n agentName: string;\n provider: string;\n modelId: string;\n messages: MessageListInput;\n prompt: string;\n runId: string;\n streaming: boolean;\n method: 'generate' | 'stream';\n requestContext: RequestContext;\n instructions?: string;\n maxSteps?: SDKAgentRunOptions<OUTPUT>['maxSteps'];\n tracingOptions?: SDKAgentRunOptions<OUTPUT>['tracingOptions'];\n tracingContext?: SDKAgentRunOptions<OUTPUT>['tracingContext'];\n onFinish?: SDKAgentRunOptions<OUTPUT>['onFinish'];\n onStepFinish?: SDKAgentRunOptions<OUTPUT>['onStepFinish'];\n mastra?: Mastra;\n};\n\nexport type SDKAgentTelemetry<OUTPUT = unknown> = {\n execute<T>(fn: () => Promise<T>): Promise<T>;\n endGenerate(result: SDKModelGenerateResult): void;\n fail(error: unknown): void;\n startToolCall(input: SDKAgentToolCallInput): void;\n endToolCall(output: SDKAgentToolCallOutput): void;\n wrapStream(stream: ReadableStream<ChunkType>): ReadableStream<ChunkType>;\n outputOptions(): Partial<MastraModelOutputOptions<OUTPUT>>;\n};\n\nexport type SDKAgentToolCallInput = {\n toolCallId: string;\n toolName: string;\n input?: unknown;\n};\n\nexport type SDKAgentToolCallOutput = {\n toolCallId: string;\n output?: unknown;\n isError?: boolean;\n};\n\nexport function createSDKAgentTelemetry<OUTPUT>({\n agentId,\n agentName,\n provider,\n modelId,\n messages,\n prompt,\n runId,\n streaming,\n method,\n requestContext,\n instructions,\n maxSteps,\n tracingOptions,\n tracingContext,\n onFinish,\n onStepFinish,\n mastra,\n}: SDKAgentTelemetryOptions<OUTPUT>): SDKAgentTelemetry<OUTPUT> {\n const agentSpan = getOrCreateSpan({\n type: SpanType.AGENT_RUN,\n name: `agent run: '${agentId}'`,\n entityType: EntityType.AGENT,\n entityId: agentId,\n entityName: agentName,\n input: messages,\n attributes: {\n prompt,\n instructions,\n maxSteps,\n },\n metadata: {\n runId,\n sdkAgent: true,\n sdkProvider: provider,\n sdkMethod: method,\n },\n tracingOptions,\n tracingContext,\n requestContext,\n mastra,\n });\n\n const modelSpan = agentSpan?.createChildSpan({\n type: SpanType.MODEL_GENERATION,\n name: `llm: '${modelId}'`,\n input: {\n messages,\n },\n attributes: {\n model: modelId,\n provider,\n streaming,\n },\n metadata: {\n runId,\n sdkAgent: true,\n sdkProvider: provider,\n sdkMethod: method,\n },\n requestContext,\n });\n const modelSpanTracker = getModelSpanTracker(modelSpan);\n const toolSpans = new Map<string, Span<SpanType.TOOL_CALL> | Span<SpanType.MCP_TOOL_CALL>>();\n\n let ended = false;\n\n const startToolCall = ({ toolCallId, toolName, input }: SDKAgentToolCallInput) => {\n if (toolSpans.has(toolCallId)) {\n return;\n }\n\n const parentSpan = agentSpan ?? modelSpan;\n if (!parentSpan) {\n return;\n }\n\n const mcp = parseMcpToolName(toolName);\n const span = mcp\n ? parentSpan.createChildSpan({\n type: SpanType.MCP_TOOL_CALL,\n name: `mcp_tool: '${toolName}' on '${mcp.serverName}'`,\n input,\n entityType: EntityType.TOOL,\n entityId: toolName,\n entityName: toolName,\n attributes: {\n mcpServer: mcp.serverName,\n },\n metadata: {\n runId,\n sdkAgent: true,\n sdkProvider: provider,\n sdkMethod: method,\n toolCallId,\n },\n requestContext,\n })\n : parentSpan.createChildSpan({\n type: SpanType.TOOL_CALL,\n name: `tool: '${toolName}'`,\n input,\n entityType: EntityType.TOOL,\n entityId: toolName,\n entityName: toolName,\n attributes: {\n toolType: 'tool',\n },\n metadata: {\n runId,\n sdkAgent: true,\n sdkProvider: provider,\n sdkMethod: method,\n toolCallId,\n },\n requestContext,\n });\n\n toolSpans.set(toolCallId, span);\n };\n\n const endToolCall = ({ toolCallId, output, isError }: SDKAgentToolCallOutput) => {\n const span = toolSpans.get(toolCallId);\n if (!span) {\n return;\n }\n\n toolSpans.delete(toolCallId);\n if (isError) {\n span.error({\n error:\n output instanceof Error ? output : new Error(typeof output === 'string' ? output : 'SDK tool call failed'),\n attributes: { success: false },\n });\n return;\n }\n\n span.end({\n output,\n attributes: { success: true },\n });\n };\n\n const closeOpenToolSpans = (success: boolean, error?: unknown) => {\n for (const [toolCallId, span] of toolSpans) {\n toolSpans.delete(toolCallId);\n if (success) {\n span.end({ attributes: { success: true } });\n continue;\n }\n\n const normalized = error instanceof Error ? error : new Error(String(error ?? 'SDK agent run failed'));\n span.error({ error: normalized, attributes: { success: false } });\n }\n };\n\n const endModel = ({\n text,\n usage,\n providerMetadata,\n finishReason = 'stop',\n responseId,\n responseModel,\n costContext,\n }: {\n text: string;\n usage?: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n finishReason?: string;\n responseId?: string;\n responseModel?: string;\n costContext?: CostContext;\n }) => {\n if (modelSpanTracker) {\n modelSpanTracker.endGeneration({\n output: {\n text,\n },\n attributes: {\n finishReason,\n responseId,\n responseModel,\n costContext,\n },\n usage,\n providerMetadata,\n });\n return;\n }\n\n modelSpan?.end({\n output: {\n text,\n },\n attributes: {\n finishReason,\n responseId,\n responseModel,\n usage: usage ? toUsageStats(usage) : undefined,\n costContext,\n },\n });\n };\n\n const end = (result: {\n text: string;\n usage?: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n finishReason?: string;\n responseId?: string;\n responseModel?: string;\n costContext?: CostContext;\n }) => {\n if (ended) {\n return;\n }\n\n ended = true;\n closeOpenToolSpans(true);\n endModel(result);\n agentSpan?.end({\n output: {\n text: result.text,\n },\n });\n };\n\n const fail = (error: unknown) => {\n if (ended) {\n return;\n }\n\n ended = true;\n const normalized = error instanceof Error ? error : new Error(String(error));\n closeOpenToolSpans(false, normalized);\n if (modelSpanTracker) {\n modelSpanTracker.reportGenerationError({ error: normalized });\n } else {\n modelSpan?.error({ error: normalized });\n }\n agentSpan?.error({ error: normalized });\n };\n\n return {\n execute: fn => executeWithContext({ span: modelSpan ?? agentSpan, fn }),\n endGenerate(result) {\n end({\n text: result.content.map(part => part.text).join(''),\n usage: toLanguageModelUsage(result.usage),\n providerMetadata: result.providerMetadata,\n finishReason: result.finishReason.unified,\n responseId: result.response.id,\n responseModel: result.response.modelId,\n costContext: result.costContext,\n });\n },\n fail,\n startToolCall,\n endToolCall,\n wrapStream(stream) {\n const trackedStream = (modelSpanTracker?.wrapStream(stream) ?? stream) as ReadableStream<ChunkType>;\n return wrapStreamForAgentSpan(trackedStream, {\n end,\n fail,\n });\n },\n outputOptions() {\n return {\n onFinish,\n onStepFinish,\n requestContext,\n tracingContext: agentSpan ? { currentSpan: agentSpan } : tracingContext,\n };\n },\n };\n}\n\nfunction parseMcpToolName(toolName: string): { serverName: string; toolName: string } | undefined {\n const match = /^mcp__([^_].*?)__(.+)$/.exec(toolName);\n if (!match?.[1] || !match[2]) {\n return undefined;\n }\n\n return {\n serverName: match[1],\n toolName: match[2],\n };\n}\n\nfunction getModelSpanTracker(\n modelSpan: Span<SpanType.MODEL_GENERATION> | AIModelGenerationSpan | undefined,\n): IModelSpanTracker | undefined {\n if (!modelSpan || !('createTracker' in modelSpan)) {\n return undefined;\n }\n\n return modelSpan.createTracker();\n}\n\nfunction wrapStreamForAgentSpan(\n stream: ReadableStream<ChunkType>,\n telemetry: {\n end: (result: {\n text: string;\n usage?: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n finishReason?: string;\n responseId?: string;\n responseModel?: string;\n costContext?: CostContext;\n }) => void;\n fail: (error: unknown) => void;\n },\n): ReadableStream<ChunkType> {\n let text = '';\n\n return stream.pipeThrough(\n new TransformStream<ChunkType, ChunkType>({\n transform(chunk, controller) {\n if (chunk.type === 'text-delta') {\n text += chunk.payload.text;\n }\n\n if (chunk.type === 'finish') {\n telemetry.end({\n text,\n usage: chunk.payload.output.usage,\n providerMetadata: chunk.payload.providerMetadata,\n finishReason: chunk.payload.stepResult.reason,\n responseId: chunk.payload.response?.id,\n responseModel: chunk.payload.response?.modelId,\n costContext: getCostContext(chunk.payload.metadata?.costContext),\n });\n }\n\n if (chunk.type === 'error') {\n telemetry.fail(chunk.payload.error);\n }\n\n controller.enqueue(chunk);\n },\n flush() {\n telemetry.end({ text });\n },\n }),\n );\n}\n\nfunction toUsageStats(usage: LanguageModelUsage): UsageStats {\n return {\n inputTokens: usage.inputTokens,\n outputTokens: usage.outputTokens,\n inputDetails: {\n cacheRead: usage.cachedInputTokens,\n cacheWrite: usage.cacheCreationInputTokens,\n },\n outputDetails: {\n text: usage.outputTokens,\n reasoning: usage.reasoningTokens,\n },\n };\n}\n\nfunction getCostContext(value: unknown): CostContext | undefined {\n if (!value || typeof value !== 'object') {\n return undefined;\n }\n\n return value as CostContext;\n}\n\nexport function enqueueStartChunks(\n controller: ReadableStreamDefaultController<ChunkType>,\n {\n runId,\n prompt,\n textId,\n responseId,\n modelId,\n providerMetadata,\n }: {\n runId: string;\n prompt: string;\n textId: string;\n responseId: string;\n modelId: string;\n providerMetadata?: ProviderMetadata;\n },\n): void {\n controller.enqueue({\n type: 'start',\n runId,\n from: ChunkFrom.AGENT,\n payload: {},\n });\n controller.enqueue({\n type: 'step-start',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n request: { body: prompt },\n },\n });\n controller.enqueue({\n type: 'response-metadata',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: responseId,\n modelId,\n timestamp: new Date().toISOString(),\n },\n });\n controller.enqueue({\n type: 'text-start',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: textId,\n providerMetadata,\n },\n });\n}\n\nexport function enqueueTextDelta(\n controller: ReadableStreamDefaultController<ChunkType>,\n runId: string,\n textId: string,\n text: string,\n): void {\n controller.enqueue({\n type: 'text-delta',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: textId,\n text,\n },\n });\n}\n\nexport function enqueueFinishChunks(\n controller: ReadableStreamDefaultController<ChunkType>,\n {\n runId,\n prompt,\n textId,\n text,\n responseId,\n modelId,\n usage,\n providerMetadata,\n costContext,\n }: {\n runId: string;\n prompt: string;\n textId: string;\n text: string;\n responseId: string;\n modelId: string;\n usage: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n costContext?: CostContext;\n },\n): void {\n const timestamp = new Date();\n const response = {\n id: responseId,\n modelId,\n timestamp,\n };\n const metadata = {\n providerMetadata,\n costContext,\n request: { body: prompt },\n modelId,\n timestamp,\n };\n\n controller.enqueue({\n type: 'text-end',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: textId,\n providerMetadata,\n },\n });\n controller.enqueue({\n type: 'step-finish',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: responseId,\n providerMetadata,\n totalUsage: usage,\n response,\n stepResult: {\n reason: 'stop',\n warnings: [],\n },\n output: {\n text,\n usage,\n steps: [],\n },\n metadata,\n },\n });\n controller.enqueue({\n type: 'finish',\n runId,\n from: ChunkFrom.AGENT,\n payload: {\n stepResult: {\n reason: 'stop',\n warnings: [],\n },\n output: {\n usage,\n steps: [],\n },\n metadata,\n providerMetadata,\n messages: {\n all: [],\n user: [],\n nonUser: [],\n },\n response,\n },\n });\n}\n\nexport function toLanguageModelUsage(usage: V3Usage): LanguageModelUsage {\n const inputTokens = usage.inputTokens.total ?? 0;\n const outputTokens = usage.outputTokens.total ?? 0;\n\n return {\n inputTokens,\n outputTokens,\n totalTokens: inputTokens + outputTokens,\n cachedInputTokens: usage.inputTokens.cacheRead,\n cacheCreationInputTokens: usage.inputTokens.cacheWrite,\n raw: usage,\n };\n}\n\nexport function createProviderMetadata(provider: string, metadata: Record<string, unknown>): ProviderMetadata {\n return {\n [provider]: toJsonRecord(metadata),\n };\n}\n\nfunction toJsonRecord(record: Record<string, unknown>): Record<string, JSONValue> {\n return Object.fromEntries(\n Object.entries(record)\n .filter((entry): entry is [string, Exclude<unknown, undefined>] => entry[1] !== undefined)\n .map(([key, value]) => [key, toJsonValue(value)]),\n );\n}\n\nfunction toJsonValue(value: unknown): JSONValue {\n if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.filter(item => item !== undefined).map(toJsonValue);\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === 'object') {\n return toJsonRecord(value as Record<string, unknown>);\n }\n\n return String(value);\n}\n\nexport function promptToText(prompt: unknown): string {\n if (typeof prompt === 'string') {\n return prompt;\n }\n\n if (Array.isArray(prompt)) {\n return prompt.map(promptToText).filter(Boolean).join('\\n');\n }\n\n if (!prompt || typeof prompt !== 'object') {\n return '';\n }\n\n const record = prompt as Record<string, unknown>;\n if (typeof record.text === 'string') {\n return record.text;\n }\n if (typeof record.content === 'string') {\n return record.content;\n }\n if (record.content) {\n return promptToText(record.content);\n }\n\n return '';\n}\n\nexport function sumDefined(...values: Array<number | undefined>): number | undefined {\n const defined = values.filter((value): value is number => typeof value === 'number');\n if (defined.length === 0) {\n return undefined;\n }\n\n return defined.reduce((sum, value) => sum + value, 0);\n}\n","import { randomUUID } from 'node:crypto';\nimport { ReadableStream } from 'node:stream/web';\n\nimport { Agent as CursorAgent } from '@cursor/sdk';\nimport type {\n AgentOptions as CursorCreateOptions,\n InteractionUpdate,\n ModelSelection,\n Run,\n SDKAgent,\n SDKMessage,\n SendOptions,\n} from '@cursor/sdk';\n\nimport { Agent } from '@mastra/core/agent';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { Mastra } from '@mastra/core/mastra';\nimport { RequestContext } from '@mastra/core/request-context';\nimport type {\n ChunkType,\n FullOutput,\n LanguageModelUsage,\n ProviderMetadata,\n MastraModelOutput,\n} from '@mastra/core/stream';\nimport { ChunkFrom } from '@mastra/core/stream';\nimport {\n createMastraOutput,\n createNoopModel,\n createProviderMetadata,\n createSDKAgentTelemetry,\n enqueueFinishChunks,\n enqueueStartChunks,\n enqueueTextDelta,\n promptToText,\n sumDefined,\n toFullOutput,\n toLanguageModelUsage,\n} from './utils';\nimport type { SDKAgentRunOptions, SDKAgentTelemetry, SDKModelGenerateResult, V3Usage } from './utils';\n\nconst PROVIDER = '@cursor/sdk';\nconst MODEL_ID = 'cursor-agent-sdk';\n\ntype CursorUsageTotals = {\n inputTokens?: number;\n outputTokens?: number;\n cacheReadTokens?: number;\n cacheWriteTokens?: number;\n};\n\ntype CursorToolTelemetry = Pick<SDKAgentTelemetry, 'startToolCall' | 'endToolCall'>;\n\nexport type CursorAgentFactory = (options: CursorCreateOptions) => SDKAgent | Promise<SDKAgent>;\nexport type CursorAgentInput = SDKAgent | Promise<SDKAgent> | CursorAgentFactory;\n\nexport type CursorAgentOptions = {\n /**\n * Mastra agent id used when registering this wrapper with Mastra.\n */\n id: string;\n /**\n * Optional display name for the Mastra agent. Defaults to `id`.\n */\n name?: string;\n /**\n * Description surfaced by Mastra when listing or selecting agents.\n */\n description: string;\n /**\n * Cursor SDK agent or factory. Pass a pre-created SDK agent when you manage\n * its lifecycle elsewhere. Omit this option to let this wrapper call\n * `CursorAgent.create()` with `sdkOptions`.\n *\n * If you pass `CursorAgent.create({...})`, that promise has already been\n * created by the Cursor SDK and wrapper-level create options cannot be\n * merged into it. Put all Cursor create options in that call, or pass the\n * factory itself as `agent: CursorAgent.create`.\n *\n * The factory path allows Mastra to hydrate defaults such as `apiKey`.\n */\n agent?: CursorAgentInput;\n /**\n * Cursor SDK options used when `agent` is omitted or when `agent` is a\n * factory. Defaults `apiKey` to `process.env.CURSOR_API_KEY` when not\n * provided.\n */\n sdkOptions?: CursorCreateOptions;\n};\n\nexport class CursorSDKAgent extends Agent {\n readonly options: CursorAgentOptions;\n #mastra?: Mastra;\n #createdAgent?: Promise<SDKAgent>;\n\n constructor(options: CursorAgentOptions) {\n super({\n id: options.id,\n name: options.name ?? options.id,\n description: options.description,\n instructions: '',\n model: createNoopModel({\n modelId: getModelId(getRequestedModel(options)),\n provider: PROVIDER,\n }),\n });\n this.options = options;\n }\n\n override __registerMastra(mastra: Mastra): void {\n super.__registerMastra(mastra);\n this.#mastra = mastra;\n }\n\n supportsMemory(): boolean {\n return false;\n }\n\n async generate<OUTPUT = undefined>(\n messages: MessageListInput,\n options?: SDKAgentRunOptions<OUTPUT>,\n ): Promise<FullOutput<OUTPUT>> {\n const prompt = promptToText(messages);\n const runId = options?.runId ?? randomUUID();\n const sdkAgent = await this.resolveCursorAgent();\n const modelId = getCursorModelId(this.options, sdkAgent);\n const requestContext = options?.requestContext ?? new RequestContext();\n const instructions = options?.instructions ? promptToText(options.instructions) : undefined;\n const telemetry = createSDKAgentTelemetry({\n agentId: this.id,\n agentName: this.name,\n provider: PROVIDER,\n modelId,\n messages,\n prompt,\n runId,\n streaming: false,\n method: 'generate',\n requestContext,\n instructions,\n maxSteps: options?.maxSteps,\n tracingOptions: options?.tracingOptions,\n tracingContext: options?.tracingContext,\n onFinish: options?.onFinish,\n onStepFinish: options?.onStepFinish,\n mastra: this.#mastra,\n });\n let result: SDKModelGenerateResult;\n try {\n result = await telemetry.execute(() => runCursorGenerate(prompt, this.options, sdkAgent, telemetry));\n telemetry.endGenerate(result);\n } catch (error) {\n telemetry.fail(error);\n throw error;\n }\n\n return toFullOutput<OUTPUT>({\n messages,\n runId,\n provider: PROVIDER,\n result,\n options: telemetry.outputOptions(),\n });\n }\n\n async stream<OUTPUT = undefined>(\n messages: MessageListInput,\n options?: SDKAgentRunOptions<OUTPUT>,\n ): Promise<MastraModelOutput<OUTPUT>> {\n const runId = options?.runId ?? randomUUID();\n const prompt = promptToText(messages);\n const sdkAgent = await this.resolveCursorAgent();\n const modelId = getCursorModelId(this.options, sdkAgent);\n const requestContext = options?.requestContext ?? new RequestContext();\n const instructions = options?.instructions ? promptToText(options.instructions) : undefined;\n const telemetry = createSDKAgentTelemetry({\n agentId: this.id,\n agentName: this.name,\n provider: PROVIDER,\n modelId,\n messages,\n prompt,\n runId,\n streaming: true,\n method: 'stream',\n requestContext,\n instructions,\n maxSteps: options?.maxSteps,\n tracingOptions: options?.tracingOptions,\n tracingContext: options?.tracingContext,\n onFinish: options?.onFinish,\n onStepFinish: options?.onStepFinish,\n mastra: this.#mastra,\n });\n\n return createMastraOutput<OUTPUT>({\n messages,\n runId,\n modelId,\n provider: PROVIDER,\n stream: telemetry.wrapStream(runCursorAsMastraStream(prompt, this.options, sdkAgent, runId, telemetry)),\n options: telemetry.outputOptions(),\n });\n }\n\n private resolveCursorAgent(): Promise<SDKAgent> {\n this.#createdAgent ??= resolveCursorAgent(this.options.agent, this.options).catch(error => {\n this.#createdAgent = undefined;\n throw error;\n });\n return this.#createdAgent;\n }\n}\n\nasync function runCursorGenerate(\n prompt: string,\n options: CursorAgentOptions,\n agent: SDKAgent,\n telemetry: CursorToolTelemetry,\n): Promise<SDKModelGenerateResult> {\n const usage = createCursorUsageCollector();\n const run = await agent.send(prompt, createCursorSendOptions(options, usage, telemetry));\n const result = await run.wait();\n\n if (result.status === 'error' || result.status === 'cancelled') {\n throw new Error(`Cursor run ${result.id} ended with status ${result.status}`);\n }\n\n const responseModel = getModelId(result.model ?? run.model ?? getRequestedModel(options) ?? agent.model);\n const providerMetadata = getCursorProviderMetadata(\n options,\n agent.agentId,\n result.id,\n result.status,\n result.durationMs,\n usage.totals(),\n responseModel,\n );\n\n return {\n content: [{ type: 'text', text: result.result ?? '' }],\n finishReason: { unified: 'stop', raw: 'stop' },\n usage: usage.toV3Usage(),\n response: {\n id: result.id,\n modelId: responseModel,\n timestamp: new Date(),\n },\n providerMetadata,\n };\n}\n\nfunction runCursorAsMastraStream(\n prompt: string,\n options: CursorAgentOptions,\n agent: SDKAgent,\n runId: string,\n telemetry: CursorToolTelemetry,\n): ReadableStream<ChunkType> {\n return new ReadableStream<ChunkType>({\n start: async controller => {\n const textId = randomUUID();\n const usage = createCursorUsageCollector();\n let text = '';\n\n try {\n const run = await agent.send(prompt, createCursorSendOptions(options, usage, telemetry));\n const responseId = run.id;\n const responseModel = getModelId(run.model ?? getRequestedModel(options) ?? agent.model);\n\n enqueueStartChunks(controller, {\n runId,\n prompt,\n textId,\n responseId,\n modelId: responseModel,\n providerMetadata: getCursorProviderMetadata(\n options,\n agent.agentId,\n run.id,\n run.status,\n run.durationMs,\n usage.totals(),\n responseModel,\n ),\n });\n\n let result: Awaited<ReturnType<Run['wait']>> | undefined;\n if (run.supports('stream')) {\n for await (const message of run.stream()) {\n const delta = getTextFromCursorMessage(message);\n if (delta) {\n text += delta;\n enqueueTextDelta(controller, runId, textId, delta);\n }\n }\n result = await run.wait();\n } else {\n result = await run.wait();\n if (result.status === 'error' || result.status === 'cancelled') {\n throw new Error(`Cursor run ${result.id} ended with status ${result.status}`);\n }\n if (result.result) {\n text += result.result;\n enqueueTextDelta(controller, runId, textId, result.result);\n }\n }\n\n if (result.status === 'error' || result.status === 'cancelled') {\n throw new Error(`Cursor run ${result.id} ended with status ${result.status}`);\n }\n\n if (!text && result.result) {\n text = result.result;\n enqueueTextDelta(controller, runId, textId, result.result);\n }\n\n const providerMetadata = getCursorProviderMetadata(\n options,\n agent.agentId,\n run.id,\n result.status,\n result.durationMs,\n usage.totals(),\n getModelId(result.model ?? run.model ?? getRequestedModel(options) ?? agent.model),\n );\n enqueueFinishChunks(controller, {\n runId,\n prompt,\n textId,\n text,\n responseId,\n modelId: getModelId(result.model ?? run.model ?? getRequestedModel(options) ?? agent.model),\n usage: usage.toLanguageModelUsage(),\n providerMetadata,\n });\n controller.close();\n } catch (error) {\n controller.enqueue({\n type: 'error',\n runId,\n from: ChunkFrom.AGENT,\n payload: { error },\n });\n controller.close();\n }\n },\n });\n}\n\nasync function resolveCursorAgent(agent: CursorAgentInput | undefined, options: CursorAgentOptions): Promise<SDKAgent> {\n if (!agent) {\n return CursorAgent.create(toCursorCreateOptions(options));\n }\n\n return typeof agent === 'function' ? agent(toCursorCreateOptions(options)) : agent;\n}\n\nfunction toCursorCreateOptions(options: CursorAgentOptions): CursorCreateOptions {\n const createOptions: CursorCreateOptions = { ...options.sdkOptions };\n const apiKey = createOptions.apiKey ?? process.env['CURSOR_API_KEY'];\n\n if (apiKey) createOptions.apiKey = apiKey;\n if (options.name && !createOptions.name) createOptions.name = options.name;\n\n return createOptions;\n}\n\nfunction createCursorSendOptions(\n options: CursorAgentOptions,\n usage: CursorUsageCollector,\n telemetry: CursorToolTelemetry,\n): SendOptions {\n return {\n mcpServers: options.sdkOptions?.mcpServers,\n onDelta: async args => {\n usage.record(args.update);\n recordCursorToolTelemetry(args.update, telemetry);\n },\n };\n}\n\ntype CursorUsageCollector = ReturnType<typeof createCursorUsageCollector>;\n\nfunction createCursorUsageCollector() {\n const totals: Required<CursorUsageTotals> = {\n inputTokens: 0,\n outputTokens: 0,\n cacheReadTokens: 0,\n cacheWriteTokens: 0,\n };\n\n return {\n record(update: InteractionUpdate) {\n if (update.type !== 'turn-ended' || !update.usage) {\n return;\n }\n\n totals.inputTokens += update.usage.inputTokens;\n totals.outputTokens += update.usage.outputTokens;\n totals.cacheReadTokens += update.usage.cacheReadTokens;\n totals.cacheWriteTokens += update.usage.cacheWriteTokens;\n },\n totals(): CursorUsageTotals {\n return {\n inputTokens: totals.inputTokens || undefined,\n outputTokens: totals.outputTokens || undefined,\n cacheReadTokens: totals.cacheReadTokens || undefined,\n cacheWriteTokens: totals.cacheWriteTokens || undefined,\n };\n },\n toV3Usage(): V3Usage {\n return toV3Usage(totals);\n },\n toLanguageModelUsage(): LanguageModelUsage {\n return toLanguageModelUsage(toV3Usage(totals));\n },\n };\n}\n\nfunction toV3Usage(usage: CursorUsageTotals): V3Usage {\n const noCache = usage.inputTokens;\n const cacheRead = usage.cacheReadTokens;\n const cacheWrite = usage.cacheWriteTokens;\n const totalInputTokens = sumDefined(noCache, cacheRead, cacheWrite);\n const outputTokens = usage.outputTokens;\n\n return {\n inputTokens: {\n total: totalInputTokens,\n noCache,\n cacheRead,\n cacheWrite,\n },\n outputTokens: {\n total: outputTokens,\n text: outputTokens,\n },\n };\n}\n\nfunction getRequestedModel(options: CursorAgentOptions): ModelSelection | undefined {\n return options.sdkOptions?.model;\n}\n\nfunction getModelId(model: ModelSelection | undefined): string {\n if (!model) {\n return MODEL_ID;\n }\n\n return typeof model === 'string' ? model : model.id;\n}\n\nfunction getCursorModelId(options: CursorAgentOptions, agent: SDKAgent): string {\n return getModelId(getRequestedModel(options) ?? agent.model);\n}\n\nfunction getCursorProviderMetadata(\n options: CursorAgentOptions,\n agentId: string,\n runId: string,\n status?: Run['status'],\n durationMs?: number,\n usage?: CursorUsageTotals,\n requestedModel?: string,\n): ProviderMetadata {\n return createProviderMetadata('cursor', {\n agentId,\n runId,\n status,\n requestedModel: requestedModel ?? getModelId(getRequestedModel(options)),\n durationMs,\n mcpServerNames: getMcpServerNames(options),\n usage,\n });\n}\n\nfunction getMcpServerNames(options: CursorAgentOptions): string[] | undefined {\n const servers = options.sdkOptions?.mcpServers;\n return servers ? Object.keys(servers) : undefined;\n}\n\nfunction getTextFromCursorMessage(message: SDKMessage): string {\n if (message.type === 'assistant') {\n return message.message.content\n .map(block => {\n if (block.type === 'text') {\n return block.text;\n }\n\n return '';\n })\n .filter(Boolean)\n .join('');\n }\n\n if (message.type === 'task') {\n return message.text ?? '';\n }\n\n return '';\n}\n\nfunction recordCursorToolTelemetry(update: InteractionUpdate, telemetry: CursorToolTelemetry): void {\n const updateRecord = toRecord(update);\n if (!updateRecord) {\n return;\n }\n\n const updateType = typeof updateRecord?.type === 'string' ? updateRecord.type : undefined;\n\n if (\n updateType !== 'tool-call-started' &&\n updateType !== 'partial-tool-call' &&\n updateType !== 'tool-call-completed'\n ) {\n return;\n }\n\n const toolCall = getCursorToolCall(updateRecord);\n if (!toolCall) {\n return;\n }\n\n if (updateType === 'tool-call-started' || updateType === 'partial-tool-call') {\n telemetry.startToolCall({\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n });\n return;\n }\n\n telemetry.startToolCall({\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n });\n telemetry.endToolCall({\n toolCallId: toolCall.toolCallId,\n output: toolCall.output,\n isError: toolCall.isError,\n });\n}\n\nfunction getCursorToolCall(update: Record<string, unknown>):\n | {\n toolCallId: string;\n toolName: string;\n input?: unknown;\n output?: unknown;\n isError?: boolean;\n }\n | undefined {\n const toolCallId = typeof update.callId === 'string' ? update.callId : undefined;\n const toolCall = toRecord(update.toolCall);\n if (!toolCallId || !toolCall) {\n return undefined;\n }\n\n if (toolCall.type === 'mcp') {\n const args = toRecord(toolCall.args);\n if (!args) {\n return undefined;\n }\n\n const providerIdentifier = typeof args?.providerIdentifier === 'string' ? args.providerIdentifier : undefined;\n const toolName = typeof args?.toolName === 'string' ? args.toolName : undefined;\n if (!providerIdentifier || !toolName) {\n return undefined;\n }\n\n const result = toRecord(toolCall.result);\n\n return {\n toolCallId,\n toolName: `mcp__${providerIdentifier}__${toolName}`,\n input: args.args,\n output: result?.value ?? toolCall.result,\n isError: result?.status === 'error' || result?.status === 'failed',\n };\n }\n\n const toolName =\n typeof toolCall.name === 'string' ? toolCall.name : typeof toolCall.type === 'string' ? toolCall.type : undefined;\n if (!toolName) {\n return undefined;\n }\n\n return {\n toolCallId,\n toolName,\n input: 'args' in toolCall ? toolCall.args : undefined,\n output: 'result' in toolCall ? toolCall.result : undefined,\n isError: toolCall.status === 'error',\n };\n}\n\nfunction toRecord(value: unknown): Record<string, unknown> | undefined {\n return value !== null && typeof value === 'object' ? (value as Record<string, unknown>) : undefined;\n}\n"]}
@@ -0,0 +1,138 @@
1
+ import { ReadableStream } from 'node:stream/web';
2
+ import type { ReadableStreamDefaultController } from 'node:stream/web';
3
+ import type { AgentExecutionOptionsBase, MastraLanguageModel } from '@mastra/core/agent';
4
+ import type { MessageListInput } from '@mastra/core/agent/message-list';
5
+ import type { Mastra } from '@mastra/core/mastra';
6
+ import type { CostContext } from '@mastra/core/observability';
7
+ import type { RequestContext } from '@mastra/core/request-context';
8
+ import type { ChunkType, FullOutput, LanguageModelUsage, ProviderMetadata } from '@mastra/core/stream';
9
+ import { MastraModelOutput } from '@mastra/core/stream';
10
+ type MastraModelOutputOptions<OUTPUT = undefined> = ConstructorParameters<typeof MastraModelOutput<OUTPUT>>[0]['options'];
11
+ export type SDKAgentRunOptions<OUTPUT = unknown> = AgentExecutionOptionsBase<OUTPUT> & {
12
+ signal?: AbortSignal;
13
+ [key: string]: unknown;
14
+ };
15
+ export type V3Usage = {
16
+ inputTokens: {
17
+ total: number | undefined;
18
+ noCache?: number;
19
+ cacheRead?: number;
20
+ cacheWrite?: number;
21
+ };
22
+ outputTokens: {
23
+ total: number | undefined;
24
+ text?: number;
25
+ };
26
+ };
27
+ export type SDKModelGenerateResult = {
28
+ content: Array<{
29
+ type: 'text';
30
+ text: string;
31
+ }>;
32
+ finishReason: {
33
+ unified: 'stop';
34
+ raw: 'stop';
35
+ };
36
+ usage: V3Usage;
37
+ response: {
38
+ id: string;
39
+ modelId: string;
40
+ timestamp: Date;
41
+ };
42
+ providerMetadata?: ProviderMetadata;
43
+ costContext?: CostContext;
44
+ };
45
+ export declare function createNoopModel({ modelId, provider }: {
46
+ modelId: string;
47
+ provider: string;
48
+ }): MastraLanguageModel;
49
+ export declare function createCompletedMastraStream({ runId, prompt, text, responseId, modelId, usage, providerMetadata, costContext, }: {
50
+ runId: string;
51
+ prompt: string;
52
+ text: string;
53
+ responseId: string;
54
+ modelId: string;
55
+ usage: LanguageModelUsage;
56
+ providerMetadata?: ProviderMetadata;
57
+ costContext?: CostContext;
58
+ }): ReadableStream<ChunkType>;
59
+ export declare function createMastraOutput<OUTPUT>({ messages, runId, modelId, provider, stream, options, }: {
60
+ messages: MessageListInput;
61
+ runId: string;
62
+ modelId: string;
63
+ provider: string;
64
+ stream: ReadableStream<ChunkType>;
65
+ options?: Partial<MastraModelOutputOptions<OUTPUT>>;
66
+ }): MastraModelOutput<OUTPUT>;
67
+ export declare function toFullOutput<OUTPUT>({ messages, runId, provider, result, options, }: {
68
+ messages: MessageListInput;
69
+ runId: string;
70
+ provider: string;
71
+ result: SDKModelGenerateResult;
72
+ options?: Partial<MastraModelOutputOptions<OUTPUT>>;
73
+ }): Promise<FullOutput<OUTPUT>>;
74
+ export type SDKAgentTelemetryOptions<OUTPUT = unknown> = {
75
+ agentId: string;
76
+ agentName: string;
77
+ provider: string;
78
+ modelId: string;
79
+ messages: MessageListInput;
80
+ prompt: string;
81
+ runId: string;
82
+ streaming: boolean;
83
+ method: 'generate' | 'stream';
84
+ requestContext: RequestContext;
85
+ instructions?: string;
86
+ maxSteps?: SDKAgentRunOptions<OUTPUT>['maxSteps'];
87
+ tracingOptions?: SDKAgentRunOptions<OUTPUT>['tracingOptions'];
88
+ tracingContext?: SDKAgentRunOptions<OUTPUT>['tracingContext'];
89
+ onFinish?: SDKAgentRunOptions<OUTPUT>['onFinish'];
90
+ onStepFinish?: SDKAgentRunOptions<OUTPUT>['onStepFinish'];
91
+ mastra?: Mastra;
92
+ };
93
+ export type SDKAgentTelemetry<OUTPUT = unknown> = {
94
+ execute<T>(fn: () => Promise<T>): Promise<T>;
95
+ endGenerate(result: SDKModelGenerateResult): void;
96
+ fail(error: unknown): void;
97
+ startToolCall(input: SDKAgentToolCallInput): void;
98
+ endToolCall(output: SDKAgentToolCallOutput): void;
99
+ wrapStream(stream: ReadableStream<ChunkType>): ReadableStream<ChunkType>;
100
+ outputOptions(): Partial<MastraModelOutputOptions<OUTPUT>>;
101
+ };
102
+ export type SDKAgentToolCallInput = {
103
+ toolCallId: string;
104
+ toolName: string;
105
+ input?: unknown;
106
+ };
107
+ export type SDKAgentToolCallOutput = {
108
+ toolCallId: string;
109
+ output?: unknown;
110
+ isError?: boolean;
111
+ };
112
+ export declare function createSDKAgentTelemetry<OUTPUT>({ agentId, agentName, provider, modelId, messages, prompt, runId, streaming, method, requestContext, instructions, maxSteps, tracingOptions, tracingContext, onFinish, onStepFinish, mastra, }: SDKAgentTelemetryOptions<OUTPUT>): SDKAgentTelemetry<OUTPUT>;
113
+ export declare function enqueueStartChunks(controller: ReadableStreamDefaultController<ChunkType>, { runId, prompt, textId, responseId, modelId, providerMetadata, }: {
114
+ runId: string;
115
+ prompt: string;
116
+ textId: string;
117
+ responseId: string;
118
+ modelId: string;
119
+ providerMetadata?: ProviderMetadata;
120
+ }): void;
121
+ export declare function enqueueTextDelta(controller: ReadableStreamDefaultController<ChunkType>, runId: string, textId: string, text: string): void;
122
+ export declare function enqueueFinishChunks(controller: ReadableStreamDefaultController<ChunkType>, { runId, prompt, textId, text, responseId, modelId, usage, providerMetadata, costContext, }: {
123
+ runId: string;
124
+ prompt: string;
125
+ textId: string;
126
+ text: string;
127
+ responseId: string;
128
+ modelId: string;
129
+ usage: LanguageModelUsage;
130
+ providerMetadata?: ProviderMetadata;
131
+ costContext?: CostContext;
132
+ }): void;
133
+ export declare function toLanguageModelUsage(usage: V3Usage): LanguageModelUsage;
134
+ export declare function createProviderMetadata(provider: string, metadata: Record<string, unknown>): ProviderMetadata;
135
+ export declare function promptToText(prompt: unknown): string;
136
+ export declare function sumDefined(...values: Array<number | undefined>): number | undefined;
137
+ export {};
138
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@mastra/cursor",
3
+ "version": "0.0.0",
4
+ "description": "Cursor SDK package for Mastra",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "CHANGELOG.md"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "import": {
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.js"
17
+ },
18
+ "require": {
19
+ "types": "./dist/index.d.ts",
20
+ "default": "./dist/index.cjs"
21
+ }
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "scripts": {
26
+ "build": "pnpm build:lib",
27
+ "build:lib": "tsup --silent --config tsup.config.ts",
28
+ "prepack": "pnpx tsx ../../scripts/generate-package-docs.ts",
29
+ "build:watch": "pnpm build:lib --watch",
30
+ "test": "vitest run --passWithNoTests",
31
+ "lint": "eslint ."
32
+ },
33
+ "keywords": [],
34
+ "author": "",
35
+ "license": "Apache-2.0",
36
+ "devDependencies": {
37
+ "@cursor/sdk": "^1.0.13",
38
+ "@internal/lint": "workspace:*",
39
+ "@internal/types-builder": "workspace:*",
40
+ "@mastra/core": "workspace:*",
41
+ "@types/node": "22.19.15",
42
+ "@vitest/coverage-v8": "catalog:",
43
+ "@vitest/ui": "catalog:",
44
+ "eslint": "^10.2.1",
45
+ "tsup": "^8.5.1",
46
+ "typescript": "catalog:",
47
+ "vitest": "catalog:"
48
+ },
49
+ "homepage": "https://mastra.ai",
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "git+https://github.com/mastra-ai/mastra.git",
53
+ "directory": "agent-sdks/cursor"
54
+ },
55
+ "bugs": {
56
+ "url": "https://github.com/mastra-ai/mastra/issues"
57
+ },
58
+ "peerDependencies": {
59
+ "@cursor/sdk": "^1.0.13",
60
+ "@mastra/core": ">=1.34.0-0 <2.0.0-0"
61
+ },
62
+ "engines": {
63
+ "node": ">=22.13.0"
64
+ }
65
+ }