{"version":3,"file":"ai-model/model-adapter/planning.mjs","sources":["../../../../src/ai-model/model-adapter/planning.ts"],"sourcesContent":["import {\n  createLocateResultAdapter,\n  resolveLocateResultCoordinates,\n} from '../shared/model-locate-result';\nimport { runCustomPlanning } from '../workflows/planning/custom-planning';\nimport type {\n  CustomPlanningDefinition,\n  ResolvedCustomPlanningDefinition,\n} from './custom-planning-types';\nimport type { ModelAdapterDefinition, PlanningAdapter } from './types';\n\nconst defaultReplanningCycleLimit = 20;\n\nexport function resolveCustomPlanningDefinition<TParsed>(\n  config: CustomPlanningDefinition<TParsed>,\n): ResolvedCustomPlanningDefinition<TParsed> {\n  const { coordinates, ...rest } = config;\n  const coordinateSystem = resolveLocateResultCoordinates(coordinates);\n  const coordinateNormalizer = createLocateResultAdapter({ coordinates });\n  return {\n    ...rest,\n    coordinateSystem,\n    coordinateNormalizer,\n  };\n}\n\nexport function resolvePlanning(\n  planning: ModelAdapterDefinition['planning'],\n  resolvedCustomPlanner?: ResolvedCustomPlanningDefinition,\n): PlanningAdapter {\n  if (planning?.kind === 'custom') {\n    if (typeof planning.planFn === 'function') {\n      return {\n        kind: 'custom',\n        cacheEnabled: planning.cacheEnabled ?? false,\n        defaultReplanningCycleLimit:\n          planning.defaultReplanningCycleLimit ?? defaultReplanningCycleLimit,\n        supportsActionDeepLocate: planning.supportsActionDeepLocate ?? false,\n        planFn: planning.planFn,\n      };\n    }\n\n    if (!resolvedCustomPlanner) {\n      throw new Error('Custom planning planner definition is not resolved');\n    }\n\n    return {\n      kind: 'custom',\n      cacheEnabled: planning.cacheEnabled ?? false,\n      defaultReplanningCycleLimit:\n        planning.defaultReplanningCycleLimit ?? defaultReplanningCycleLimit,\n      supportsActionDeepLocate: planning.supportsActionDeepLocate ?? false,\n      coordinateSystem: resolvedCustomPlanner.coordinateSystem,\n      planFn: (userInstruction, options) =>\n        runCustomPlanning(userInstruction, options, resolvedCustomPlanner),\n    };\n  }\n\n  return {\n    kind: 'standard',\n    cacheEnabled: planning?.cacheEnabled ?? true,\n    defaultReplanningCycleLimit:\n      planning?.defaultReplanningCycleLimit ?? defaultReplanningCycleLimit,\n    supportsActionDeepLocate: planning?.supportsActionDeepLocate ?? true,\n  };\n}\n"],"names":["defaultReplanningCycleLimit","resolveCustomPlanningDefinition","config","coordinates","rest","coordinateSystem","resolveLocateResultCoordinates","coordinateNormalizer","createLocateResultAdapter","resolvePlanning","planning","resolvedCustomPlanner","Error","userInstruction","options","runCustomPlanning"],"mappings":";;AAWA,MAAMA,8BAA8B;AAE7B,SAASC,gCACdC,MAAyC;IAEzC,MAAM,EAAEC,WAAW,EAAE,GAAGC,MAAM,GAAGF;IACjC,MAAMG,mBAAmBC,+BAA+BH;IACxD,MAAMI,uBAAuBC,0BAA0B;QAAEL;IAAY;IACrE,OAAO;QACL,GAAGC,IAAI;QACPC;QACAE;IACF;AACF;AAEO,SAASE,gBACdC,QAA4C,EAC5CC,qBAAwD;IAExD,IAAID,UAAU,SAAS,UAAU;QAC/B,IAAI,AAA2B,cAA3B,OAAOA,SAAS,MAAM,EACxB,OAAO;YACL,MAAM;YACN,cAAcA,SAAS,YAAY,IAAI;YACvC,6BACEA,SAAS,2BAA2B,IAAIV;YAC1C,0BAA0BU,SAAS,wBAAwB,IAAI;YAC/D,QAAQA,SAAS,MAAM;QACzB;QAGF,IAAI,CAACC,uBACH,MAAM,IAAIC,MAAM;QAGlB,OAAO;YACL,MAAM;YACN,cAAcF,SAAS,YAAY,IAAI;YACvC,6BACEA,SAAS,2BAA2B,IAAIV;YAC1C,0BAA0BU,SAAS,wBAAwB,IAAI;YAC/D,kBAAkBC,sBAAsB,gBAAgB;YACxD,QAAQ,CAACE,iBAAiBC,UACxBC,kBAAkBF,iBAAiBC,SAASH;QAChD;IACF;IAEA,OAAO;QACL,MAAM;QACN,cAAcD,UAAU,gBAAgB;QACxC,6BACEA,UAAU,+BAA+BV;QAC3C,0BAA0BU,UAAU,4BAA4B;IAClE;AACF"}