MCPcopy Index your code
hub / github.com/simstudioai/sim / getLatestVersionTools

Function getLatestVersionTools

apps/sim/tools/utils.ts:33–56  ·  view source on GitHub ↗
(
  toolsMap: Record<string, ToolConfig>
)

Source from the content-addressed store, hash-verified

31 * @returns Filtered record containing only the latest version of each tool
32 */
33export function getLatestVersionTools(
34 toolsMap: Record<string, ToolConfig>
35): Record<string, ToolConfig> {
36 const latestTools: Record<string, ToolConfig> = {}
37 const baseNameToVersions: Record<string, { toolId: string; version: number }[]> = {}
38
39 for (const toolId of Object.keys(toolsMap)) {
40 const baseName = stripVersionSuffix(toolId)
41 const versionMatch = toolId.match(/_v(\d+)$/)
42 const version = versionMatch ? Number.parseInt(versionMatch[1], 10) : 1
43
44 if (!baseNameToVersions[baseName]) {
45 baseNameToVersions[baseName] = []
46 }
47 baseNameToVersions[baseName].push({ toolId, version })
48 }
49
50 for (const versions of Object.values(baseNameToVersions)) {
51 const latest = versions.reduce((prev, curr) => (curr.version > prev.version ? curr : prev))
52 latestTools[latest.toolId] = toolsMap[latest.toolId]
53 }
54
55 return latestTools
56}
57
58/**
59 * Resolves a tool name to its actual tool ID in the registry.

Callers 2

resolveToolIdFunction · 0.85

Calls 2

stripVersionSuffixFunction · 0.90
pushMethod · 0.45

Tested by

no test coverage detected