{"version":3,"file":"client-msg-function-args.mjs","names":[],"sources":["../../../src/codemods/v1/client-msg-function-args.ts"],"sourcesContent":["import { createTransformer } from '../lib/create-transformer';\nimport { trackClassInstances, trackMethodCallResults, transformMethodCalls } from '../lib/utils';\n\n/**\n * Transforms MastraClient agent method calls from object with `messages` property\n * to having `messages` as the first argument:\n *\n * Before:\n *   agent.generate({ messages: 'text', memory: {...} })\n *   agent.stream({ messages: [...], memory: {...} })\n *   agent.network({ messages: 'text', memory: {...} })\n *\n * After:\n *   agent.generate('text', { memory: {...} })\n *   agent.stream([...], { memory: {...} })\n *   agent.network('text', { memory: {...} })\n */\nexport default createTransformer((_fileInfo, _api, _options, context) => {\n  const { j, root } = context;\n\n  // Track MastraClient instances\n  const clientInstances = trackClassInstances(j, root, 'MastraClient');\n  if (clientInstances.size === 0) return;\n\n  // Track agent instances obtained from mastraClient.getAgent()\n  const agentInstances = trackMethodCallResults(j, root, clientInstances, 'getAgent');\n  if (agentInstances.size === 0) return;\n\n  // Methods to transform\n  const methodsToTransform = new Set(['generate', 'stream', 'network']);\n\n  // Transform method calls on agent instances\n  transformMethodCalls(j, root, agentInstances, undefined, path => {\n    const { callee, arguments: args } = path.value;\n\n    // Filter to only the methods we want to transform\n    if (callee.property.type !== 'Identifier') return;\n    if (!methodsToTransform.has(callee.property.name)) return;\n\n    // Check if it has exactly one argument that is an ObjectExpression\n    if (args.length !== 1) return;\n    const firstArg = args[0];\n    if (!firstArg || firstArg.type !== 'ObjectExpression') return;\n\n    // Find the `messages` property and collect other properties\n    let messagesProperty: any = null;\n    const otherProperties: any[] = [];\n\n    firstArg.properties?.forEach((prop: any) => {\n      if (\n        (prop.type === 'Property' || prop.type === 'ObjectProperty') &&\n        prop.key?.type === 'Identifier' &&\n        prop.key.name === 'messages'\n      ) {\n        messagesProperty = prop;\n      } else {\n        otherProperties.push(prop);\n      }\n    });\n\n    // If no messages property found, skip\n    if (!messagesProperty) return;\n\n    // Build new arguments: (messagesValue, { ...otherProperties })\n    const newArgs: any[] = [messagesProperty.value];\n\n    // Only add the second object argument if there are other properties\n    if (otherProperties.length > 0) {\n      newArgs.push(j.objectExpression(otherProperties));\n    }\n\n    // Replace arguments\n    path.value.arguments = newArgs;\n    context.hasChanges = true;\n  });\n\n  if (context.hasChanges) {\n    context.messages.push('Transformed MastraClient agent method calls to use messages as first argument');\n  }\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,IAAA,mCAAe,mBAAmB,WAAW,MAAM,UAAU,YAAY;CACvE,MAAM,EAAE,GAAG,SAAS;CAGpB,MAAM,kBAAkB,oBAAoB,GAAG,MAAM,cAAc;CACnE,IAAI,gBAAgB,SAAS,GAAG;CAGhC,MAAM,iBAAiB,uBAAuB,GAAG,MAAM,iBAAiB,UAAU;CAClF,IAAI,eAAe,SAAS,GAAG;CAG/B,MAAM,qCAAqB,IAAI,IAAI;EAAC;EAAY;EAAU;CAAS,CAAC;CAGpE,qBAAqB,GAAG,MAAM,gBAAgB,KAAA,IAAW,SAAQ;EAC/D,MAAM,EAAE,QAAQ,WAAW,SAAS,KAAK;EAGzC,IAAI,OAAO,SAAS,SAAS,cAAc;EAC3C,IAAI,CAAC,mBAAmB,IAAI,OAAO,SAAS,IAAI,GAAG;EAGnD,IAAI,KAAK,WAAW,GAAG;EACvB,MAAM,WAAW,KAAK;EACtB,IAAI,CAAC,YAAY,SAAS,SAAS,oBAAoB;EAGvD,IAAI,mBAAwB;EAC5B,MAAM,kBAAyB,CAAC;EAEhC,SAAS,YAAY,SAAS,SAAc;GAC1C,KACG,KAAK,SAAS,cAAc,KAAK,SAAS,qBAC3C,KAAK,KAAK,SAAS,gBACnB,KAAK,IAAI,SAAS,YAElB,mBAAmB;QAEnB,gBAAgB,KAAK,IAAI;EAE7B,CAAC;EAGD,IAAI,CAAC,kBAAkB;EAGvB,MAAM,UAAiB,CAAC,iBAAiB,KAAK;EAG9C,IAAI,gBAAgB,SAAS,GAC3B,QAAQ,KAAK,EAAE,iBAAiB,eAAe,CAAC;EAIlD,KAAK,MAAM,YAAY;EACvB,QAAQ,aAAa;CACvB,CAAC;CAED,IAAI,QAAQ,YACV,QAAQ,SAAS,KAAK,+EAA+E;AAEzG,CAAC"}