{"version":3,"file":"ai-model/models/auto-glm/planning.mjs","sources":["../../../../../src/ai-model/models/auto-glm/planning.ts"],"sourcesContent":["import { assert } from '@midscene/shared/utils';\nimport type { CustomPlanningDefinition } from '../../model-adapter/custom-planning-types';\nimport { createCoordinateDistanceToPixels } from '../../shared/model-locate-result';\nimport { transformAutoGLMAction } from './actions';\nimport { parseAutoGLMPlanningResponse } from './parser';\nimport {\n  getAutoGLMChinesePlanPrompt,\n  getAutoGLMMultilingualPlanPrompt,\n} from './prompt';\n\ntype AutoGLMParsedResponse = ReturnType<typeof parseAutoGLMPlanningResponse>;\n\nexport function createAutoGlmPlanner(\n  isMultilingual: boolean,\n): CustomPlanningDefinition<AutoGLMParsedResponse> {\n  return {\n    messages: {\n      systemPromptPlacement: 'system-message',\n      buildSystemPrompt: () =>\n        isMultilingual\n          ? getAutoGLMMultilingualPlanPrompt()\n          : getAutoGLMChinesePlanPrompt(),\n      historyImageLimit: 1,\n      buildAssistantContent: (parsedResponse) =>\n        `<think>${parsedResponse.response.think}</think><answer>${parsedResponse.response.content}</answer>`,\n    },\n    coordinates: {\n      shape: 'point',\n      order: 'xy',\n      normalizedBy: 1000,\n    },\n    parseResponse: (rawResponse) => {\n      return parseAutoGLMPlanningResponse(rawResponse);\n    },\n    transformActions: (parsedResponse, { options, coordinateSystem }) => {\n      assert(coordinateSystem, 'Auto-GLM planning requires coordinate system');\n      return transformAutoGLMAction(parsedResponse.action, {\n        actionSpace: options.actionSpace,\n        coordinateDistanceToPixels: createCoordinateDistanceToPixels(\n          options.context.shotSize,\n          coordinateSystem,\n        ),\n      });\n    },\n    shouldContinuePlanning: (parsedResponse) =>\n      parsedResponse.action._metadata !== 'finish',\n    buildResponseLog: (_parsedResponse, rawResponse) => rawResponse,\n  };\n}\n"],"names":["createAutoGlmPlanner","isMultilingual","getAutoGLMMultilingualPlanPrompt","getAutoGLMChinesePlanPrompt","parsedResponse","rawResponse","parseAutoGLMPlanningResponse","options","coordinateSystem","assert","transformAutoGLMAction","createCoordinateDistanceToPixels","_parsedResponse"],"mappings":";;;;;AAYO,SAASA,qBACdC,cAAuB;IAEvB,OAAO;QACL,UAAU;YACR,uBAAuB;YACvB,mBAAmB,IACjBA,iBACIC,qCACAC;YACN,mBAAmB;YACnB,uBAAuB,CAACC,iBACtB,CAAC,OAAO,EAAEA,eAAe,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAEA,eAAe,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QACxG;QACA,aAAa;YACX,OAAO;YACP,OAAO;YACP,cAAc;QAChB;QACA,eAAe,CAACC,cACPC,6BAA6BD;QAEtC,kBAAkB,CAACD,gBAAgB,EAAEG,OAAO,EAAEC,gBAAgB,EAAE;YAC9DC,OAAOD,kBAAkB;YACzB,OAAOE,uBAAuBN,eAAe,MAAM,EAAE;gBACnD,aAAaG,QAAQ,WAAW;gBAChC,4BAA4BI,iCAC1BJ,QAAQ,OAAO,CAAC,QAAQ,EACxBC;YAEJ;QACF;QACA,wBAAwB,CAACJ,iBACvBA,AAAoC,aAApCA,eAAe,MAAM,CAAC,SAAS;QACjC,kBAAkB,CAACQ,iBAAiBP,cAAgBA;IACtD;AACF"}